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

Raspunde prin e-mail lui