In message <alpine.gso.1.10.1308081518210.24...@multics.mit.edu>,Benjamin Kaduk writes: >gerrit/6947 raises some potentially large spectres, in particular >LinuxThreads compatibility. Chas has dedicated pthreads for each child >process to listen for SIGCHLD, plus a global thread for SIGTERM/SIGQUIT
Not quite. In the threaded version, each thread calls waitpid() after spawning the child process. So signals are only handled in a single thread which is much easier to deal with. I did it this way to work around the way LinuxThread behaves (SIGCHLD wouldn't necessarily go to the thread listening for signals) but overall this is actually quite a bit cleaner than having a single "thread" that needs to poll the status of each child. It the lwp version of the code wasn't necessary, the #ifdef maze could be cleaned up a bit. _______________________________________________ OpenAFS-devel mailing list OpenAFS-devel@openafs.org https://lists.openafs.org/mailman/listinfo/openafs-devel