Hacker News new | ask | show | jobs
by taneq 2494 days ago
Only if status is initialised to something other than SUCCESS.
1 comments

So use a do-while instead.
And this introduces another bug: it'll run the loop body even if syscall fails the first time it's run.
I've been going with this style for things like reading files (with retries) or any sort of loop that feels awkward.

  while (1) {
    int ret = ...;
    if (ret == ...) break;
    if (ret == some_other_condition) break;
    // additional termination conditions....
    // do exactly one thing
  }