switch (state) {
case NOT_CONNECTED: {
// Reap any exited children.
- int wstatus;
- while (waitpid(-1, &wstatus, WNOHANG) != -1 || errno == EINTR) ;
+ int wstatus, err;
+ do {
+ err = waitpid(-1, &wstatus, WNOHANG);
+ if (err == -1) {
+ if (errno == EINTR) {
+ continue;
+ }
+ if (errno == ECHILD) {
+ break;
+ }
+ log_perror("waitpid");
+ break;
+ }
+ } while (err != 0);
request.clear();
request_bytes_sent = 0;