On Wed, Nov 21, 2012 at 03:15:43PM -0500, Ariel Barria wrote:
Hi. well, I'm not sure that this patch have the behavior that is it hope. You have the word. But when monitor_quit is call and the process not exists, this remains in loop and not allow signal. I try it with Monitor Task and nothing. I had to reboot
Thanks a lot, Ariel, this is quite a bad bug. The concept is good, but can you change the patch a little?
instead of: if (error != EINTR) { kill() if (error == ESRCH || error == ECHILD) { killed = true; } }
I would use: if (error == ECHILD) { /* Skip this process */ killed = true; } else if (error != EINTR) { /* Keep the block with the kill function around */ }
Also, are you sure about the ESRCH error code? The waitpid man page only mentions ECHILD..