Jivin Joe deBlaquiere lays it down ...
> Does the 2.0.x dist have the same problem? It did at one point in time.
I just checked the userland sources on uClinux.org, and the bug is in that
version. The problem is that we have SIGCHLD set to SIG_IGN, the "wait"
man page says that wait may fail and return ECHILD under these
circumstances, which is exactly what was happening.
As we update the user apps for 2.4 I'll roll this change in. Its pretty
simple to work around for now with the following change:
Look for:
while(wait(&stat) != pid) /* nothing */;
Change it to something like:
pid_t wpid;
...
while ((wpid = wait(&stat)) != pid)
if (wpid == -1 && errno == ECHILD) { /* see wait(2) manpage */
stat = 0;
break;
}
I believe the real solution is for init to handle SIGCHLD,
Cheers,
Davidm
-- David McCullough: Ph: +61 7 3279 1822 Lineo (The Embedded Linux Company) davidm@lineo.com Fx: +61 7 3279 1820 PO Box 925, Kenmore QLD 4069, Australia This message resent by the ucsimm@uclinux.com list server http://www.uClinux.com/
This archive was generated by hypermail 2b30 : Sun Apr 07 2002 - 00:01:40 EST