comparison lib/sigaction.c @ 10236:d7f97416cbe1

Define SA_RESTART also for mingw.
author Bruno Haible <bruno@clisp.org>
date Sun, 22 Jun 2008 21:54:08 +0200
parents 29502a2dd08a
children 5fbf24129e48
comparison
equal deleted inserted replaced
10235:a8938b62a368 10236:d7f97416cbe1
33 provide critical sections, it too suffers from potential data races 33 provide critical sections, it too suffers from potential data races
34 in the face of an ill-timed asynchronous signal. And we compound 34 in the face of an ill-timed asynchronous signal. And we compound
35 the situation by reading static storage in a signal handler, which 35 the situation by reading static storage in a signal handler, which
36 POSIX warns is not generically async-signal-safe. Oh well. 36 POSIX warns is not generically async-signal-safe. Oh well.
37 37
38 Additionally, SIGCHLD is not defined, so we don't implement 38 Additionally:
39 SA_NOCLDSTOP or SA_NOCLDWAIT; sigaltstack() is not present, so we 39 - We don't implement SA_NOCLDSTOP or SA_NOCLDWAIT, because SIGCHLD
40 don't implement SA_ONSTACK; and siginterrupt() is not present, so 40 is not defined.
41 we don't implement SA_RESTART. Supporting SA_SIGINFO is impossible 41 - We don't implement SA_ONSTACK, because sigaltstack() is not present.
42 to do portably. 42 - We ignore SA_RESTART, because blocking Win32 calls are not interrupted
43 anyway when an asynchronous signal occurs, and the MSVCRT runtime
44 never sets errno to EINTR.
45 - We don't implement SA_SIGINFO because it is impossible to do so
46 portably.
43 47
44 POSIX states that an application should not mix signal() and 48 POSIX states that an application should not mix signal() and
45 sigaction(). We support the use of signal() within the gnulib 49 sigaction(). We support the use of signal() within the gnulib
46 sigprocmask() substitute, but all other application code linked 50 sigprocmask() substitute, but all other application code linked
47 with this module should stick with only sigaction(). */ 51 with this module should stick with only sigaction(). */