hi, i found the following code in apache web server code. if the signal occurs after the wait system call, but before the result of the system call is stored in "wait_or_timeout_retval", the fact, that the system call succeeded is lost.
this is (1) a bug in apache and (2) a problem of me that i want to solve. i thought others would have solved it, but this is obviously not true :-( now perhaps it is not interesting, wether the wait call succeeded, because you can start it again. but what about a call to "read()" ? i MUST know, wether it worked or wether it was interrupted by a signal! byebye Erik o-------------------- snap static JMP_BUF wait_timeout_buf; static int wait_or_timeout_retval = -1; static void longjmp_out_of_alarm (int sig) { siglongjmp (wait_timeout_buf, 1); } int wait_or_timeout (int *status) { wait_or_timeout_retval = -1; if (sigsetjmp(wait_timeout_buf, 1) != 0) { errno = ETIMEDOUT; return wait_or_timeout_retval; } signal (SIGALRM, longjmp_out_of_alarm); alarm(1); wait_or_timeout_retval = wait(status); alarm(0); return wait_or_timeout_retval; } o----------------------- snip -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]