Messages in this thread | | | From | Parag Warudkar <> | Subject | Re: waitid() fails with EINVAL for SA_RESTART signals | Date | Thu, 26 May 2005 21:05:08 -0400 |
| |
On Thursday 26 May 2005 20:37, Parag Warudkar wrote:
With WCONTINUED - there is no waitid in the strace output -
> clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, > child_tidptr=0x2aaaaade7b70) = 7683 > child (PID = 7683) started > rt_sigaction(SIGUSR1, {0x400aa0, [], SA_RESTORER|SA_RESTART, > 0x2aaaaabefca0}, NULL, 8) = 0 > clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, > child_tidptr=0x2aaaaade7b70) = 7684 > write(1, "Error Code from waitid - -1\n", 28Error Code from waitid - -1 > ) = 28
Without WCONTINUED -
>clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2aaaaade7b70) = 7898 >child (PID = 7898) started >rt_sigaction(SIGUSR1, {0x400aa0, [], SA_RESTORER|SA_RESTART, 0x2aaaaabefca0}, >NULL, 8) = 0 >clone(child_stack=0, flags=CLONE_CHILD_CLEARTID|CLONE_CHILD_SETTID|SIGCHLD, child_tidptr=0x2aaaaade7b70) = 7899 >wait4(7898, Sending signal to parent >0x7fffffffeecc, WSTOPPED, NULL) = ? ERESTARTSYS (To be restarted) >--- SIGUSR1 (User defined signal 1) @ 0 (0) --- >--- SIGCHLD (Child exited) @ 0 (0) --- >write(1, "Caught signal", 13Caught signal) = 13 >write(1, "\n", 1 >) = 1 >rt_sigreturn(0x1) = 61
It's of course beyond me why this difference - strace output should have had mention of wait4(...) = ENOTSUP (or whatever) when WCONTINUED is used. WCONTINUED is declared in include files and mentioned as supported in the man pages.
Parag - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |