Date: Sun, 18 May 1997 11:29:42 +1000 From: Bruce Evans <bde@zeta.org.au> To: ache@nagual.pp.ru, peter@FreeBSD.ORG Cc: cvs-all@FreeBSD.ORG, cvs-committers@FreeBSD.ORG, cvs-lib@FreeBSD.ORG Subject: Re: cvs commit: src/lib/libc/gen sleep.c Message-ID: <199705180129.LAA17474@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>BTW, it seems I find possible reason (but not test it yet). It looks like >old sleep stops only by SIGALRM (sigpause in while loop) but new one stops >by _any_ signal, isn't it? One difference is that non-defaulted SIGALRMs now kill the process instead of terminating the sleep. This breaks sleep(1). POSIX.1 may allow either behaviour (the behaviour is mostly unspecified so that BAD historiclal implementations using alarm() are standard). In particular, if SIGALRM is not generated be a previous call to alarm() and SIGALRM is not being ignored or blocked, then it is explicitly unspecified whether the signal has any effect other than causing sleep() to return. The case of SIGALRMs generated by alarm()s seems to be implicitly unspecified! Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199705180129.LAA17474>