From: Roger Dingledine Date: Wed, 4 Aug 2004 06:49:17 +0000 (+0000) Subject: fix rare race condition that causes infinite loop X-Git-Tag: tor-0.0.8pre2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0c8542d8897f4d29f767c727eb17f54145f670bf;p=thirdparty%2Ftor.git fix rare race condition that causes infinite loop if we get a sigchld but all our children are gone by the time we get around to reaping them (i don't think this should ever happen, but it just did), then we'd loop forever trying to reap them. svn:r2141 --- diff --git a/src/or/main.c b/src/or/main.c index 5e27f00721..8f01b4f310 100644 --- a/src/or/main.c +++ b/src/or/main.c @@ -842,7 +842,7 @@ static int do_main_loop(void) { please_reset = 0; } if(please_reap_children) { - while(waitpid(-1,NULL,WNOHANG)) ; /* keep reaping until no more zombies */ + while(waitpid(-1,NULL,WNOHANG) > 0) ; /* keep reaping until no more zombies */ please_reap_children = 0; } #endif /* signal stuff */