Uplink wrote:
> Asa se pare, si avand in vedere situatia asta, as fi preferat ca SIGCHLD
> sa fie tratat ca un semnal RT. Acu' tre' sa ma gandesc la alta metoda de
> gestionare a proceselor,
De ce? Pentru SIGCHLD e banal de aflat cate/care procese au dat coltul,
un handler corect nu se bazeaza pe prezumptia 1 SIGCHLD/child:
void sigchld_handler(int sig)
{
pid_t pid;
int status, saved_errno;
saved_errno = errno;
while ((pid = waitpid(-1, &status, WNOHANG)) > 0) {
/* aoleu, a mai pleznit unul */
...
}
errno = saved_errno;
}
Semnalele standard "se pierd" in sensul "semnale multiple pot fi
condensate" NU "generez un semnal si nu ajunge nimic".
---
fm
_______________________________________________
RLUG mailing list
[email protected]
http://lists.lug.ro/mailman/listinfo/rlug