Re: Re no blocking wait on Linux

From: Andi Kleen (
Date: Mon Jan 14 2002 - 10:16:02 GMT

  • Next message: Ian Edwards: "Re: "bad deriv in da" error"
    On Mon, Jan 14, 2002 at 09:50:50AM +0000, Tom Hughes wrote:
    > In message <200201111853.KAA28214_at_hunter>
    >         Rod Armstrong <> wrote:
    > > On Linux, wait3() must be used in order to get interrupts. Maybe
    > > someone with a Redhat system could investigate.
    > I've found and solved the wait() problem now. In fact wait() does get
    > interrupts but the problem is that Linux blocks signals while they are
    > being handled and a longjmp() out of the signal handler does not
    > cancel that block, so after the first time SIGIO is blocked and we
    > don't get interrupted.
    The Linux behaviour is specified in POSIX and should be matched by 
    every non ancient unix (unless you set SA_NOMASK).
    I would use siglongjmp() always, not conditional on OS_LINUX. 

    This archive was generated by hypermail 2.1.4 : Wed Feb 13 2002 - 21:51:35 GMT