Skip site navigation (1)Skip section navigation (2)
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>