Date: Thu, 14 Aug 1997 01:19:37 +1000 From: Bruce Evans <bde@zeta.org.au> To: ache@nagual.pp.ru, terry@lambert.org Cc: current@FreeBSD.ORG, sos@sos.freebsd.dk Subject: Re: siginterrupt (was Re: Error in sleep !) Message-ID: <199708131519.BAA16131@godzilla.zeta.org.au>
next in thread | raw e-mail | index | archive | help
>> POSIX says that system calls will not be restarted by default (the >> historical System V behaviour for signals). > >Could you please send exact quote just about this particular thing? >Many times POSIX is very unclear or can be misinterpreted. It is usually very clear :-). I don't have the exact quote handy, but the main point is that sa_flags == 0 gives "normal" behaviour (with no restart, etc). POSIX doesn't define any interesting SA_* macros for the flags; it only reserves SA_*. Some systems define an SA_RESTART macro for restarting syscalls. >Currently siginterrupt and signal man pages says nothing about POSIX >conformance, so manpages are right independently of how we interpretate >POSIX. siginterrupt() and signal() aren't in POSIX. >> The problem is that if I send a normally ignored signal to sleep(1) >> after it goes to sleep but before the interval is expired, the >> sleep doesn't keep going. > >POSIX says exactly that _any_ non-blocked and non-ignored signal should >terminate sleep(3)/sleep(1) including default no-op signals like ^T, etc. sleep(1) always terminated on ^C (only caught signals are restarted). Bruce
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199708131519.BAA16131>