Mercurial > gnulib
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(). */ |