diff options
author | Christopher Faylor <me@cgf.cx> | 2004-02-26 05:10:49 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2004-02-26 05:10:49 +0000 |
commit | ca713cfab35fe144b73240ebe2c333c36fd7a214 (patch) | |
tree | fea3c6ad34283801c717108aae1f7ff6729f0b92 /winsup/cygwin/include | |
parent | f9e19c093165d7c75bd9d04204845ed53b8ff0a8 (diff) | |
download | cygnal-ca713cfab35fe144b73240ebe2c333c36fd7a214.tar.gz cygnal-ca713cfab35fe144b73240ebe2c333c36fd7a214.tar.bz2 cygnal-ca713cfab35fe144b73240ebe2c333c36fd7a214.zip |
* exceptions.cc (setup_handler): Signal event for any sigwaitinfo if it exists
to force signal to be handled. Zero event here to prevent races.
* signal.cc (sigwaitinfo): Use local handle value for everything since signal
thread could zero event element at any time. Detect when awaking due to thread
not in mask and set return value and errno accordingly. Don't set signal
number to zero unless we've recognized the signal.
* sigproc.cc (sigq): Rename from sigqueue throughout.
* thread.cc (pthread::join): Handle signals received while waiting for thread
to terminate.
* cygwin.din: Export sighold, sigqueue.
* exceptions.cc (sighold): Define new function.
* signal.cc (handle_sigprocmask): Set correct errno for invalid signal.
Simplify debugging output.
(sigqueue): Define new function.
* include/cygwin/signal.h (sighold): Declare new function.
(sigqueue): Ditto.
* include/cygwin/version.h: Bump API minor version number.
* include/limits.h (TIMER_MAX): Define.
(_POSIX_TIMER_MAX): Ditto.
Diffstat (limited to 'winsup/cygwin/include')
-rw-r--r-- | winsup/cygwin/include/cygwin/signal.h | 2 | ||||
-rw-r--r-- | winsup/cygwin/include/cygwin/version.h | 3 | ||||
-rw-r--r-- | winsup/cygwin/include/limits.h | 5 |
3 files changed, 9 insertions, 1 deletions
diff --git a/winsup/cygwin/include/cygwin/signal.h b/winsup/cygwin/include/cygwin/signal.h index 864ddff7b..90d8df666 100644 --- a/winsup/cygwin/include/cygwin/signal.h +++ b/winsup/cygwin/include/cygwin/signal.h @@ -206,6 +206,8 @@ struct sigaction int sigwait (const sigset_t *, int *); int sigwaitinfo (const sigset_t *, siginfo_t *); +int sighold (int); +int sigqueue(pid_t, int, const union sigval); #ifdef __cplusplus } #endif diff --git a/winsup/cygwin/include/cygwin/version.h b/winsup/cygwin/include/cygwin/version.h index 7a5ee8881..a4d938427 100644 --- a/winsup/cygwin/include/cygwin/version.h +++ b/winsup/cygwin/include/cygwin/version.h @@ -236,12 +236,13 @@ details. */ 109: Oh well. Someone uses reent_data. 110: Export clock_gettime, sigwaitinfo, timer_create, timer_delete, timer_settime + 111: Export sigqueue, sighold. */ /* Note that we forgot to bump the api for ualarm, strtoll, strtoull */ #define CYGWIN_VERSION_API_MAJOR 0 -#define CYGWIN_VERSION_API_MINOR 110 +#define CYGWIN_VERSION_API_MINOR 111 /* There is also a compatibity version number associated with the shared memory regions. It is incremented when incompatible diff --git a/winsup/cygwin/include/limits.h b/winsup/cygwin/include/limits.h index 5d5244384..f32cf5340 100644 --- a/winsup/cygwin/include/limits.h +++ b/winsup/cygwin/include/limits.h @@ -147,6 +147,10 @@ details. */ #undef PIPE_BUF #define PIPE_BUF 4096 +/* Maximum number of timer expiration overruns. */ +#undef TIMER_MAX +#define TIMER_MAX 32 + /* POSIX values */ /* These should never vary from one system type to another */ /* They represent the minimum values that POSIX systems must support. @@ -165,6 +169,7 @@ details. */ #define _POSIX_STREAM_MAX 8 #define _POSIX_TZNAME_MAX 3 #define _POSIX_RTSIG_MAX 8 +#define _POSIX_TIMER_MAX 32 #define RTSIG_MAX _POSIX_RTSIG_MAX |