[netfilter-cvslog] r3590 - trunk/nfsim/core
rusty at netfilter.org
rusty at netfilter.org
Wed Jan 12 12:33:14 CET 2005
Author: rusty at netfilter.org
Date: 2005-01-12 12:33:14 +0100 (Wed, 12 Jan 2005)
New Revision: 3590
Modified:
trunk/nfsim/core/failtest.c
trunk/nfsim/core/message.c
Log:
Handle EINTR from wait (happens under load with --failtest and valgrind)
Modified: trunk/nfsim/core/failtest.c
===================================================================
--- trunk/nfsim/core/failtest.c 2005-01-10 22:46:42 UTC (rev 3589)
+++ trunk/nfsim/core/failtest.c 2005-01-12 11:33:14 UTC (rev 3590)
@@ -273,8 +273,11 @@
}
dec->failed = false;
- if (waitpid(child, &status, 0) != child)
- barf_perror("failtest waitpid failed for child %i",(int)child);
+ while (waitpid(child, &status, 0) < 0) {
+ if (errno != EINTR)
+ barf_perror("failtest waitpid failed for child %i",
+ (int)child);
+ }
/* If child succeeded, or mere script failure, continue. */
if (WIFEXITED(status) && (WEXITSTATUS(status) == EXIT_SUCCESS
Modified: trunk/nfsim/core/message.c
===================================================================
--- trunk/nfsim/core/message.c 2005-01-10 22:46:42 UTC (rev 3589)
+++ trunk/nfsim/core/message.c 2005-01-12 11:33:14 UTC (rev 3590)
@@ -130,8 +130,9 @@
{
int status;
- if (waitpid(currprog->pid, &status, 0) <= 0)
- barf_perror("Waiting for child %s", name);
+ while (waitpid(currprog->pid, &status, 0) <= 0)
+ if (errno != EINTR)
+ barf_perror("Waiting for child %s", name);
close(currprog->fd);
talloc_free(currprog);
More information about the netfilter-cvslog
mailing list