diff options
author | Christopher Faylor <me@cgf.cx> | 2004-03-12 06:09:28 +0300 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2004-03-12 06:09:28 +0300 |
commit | 9863b78e7bc842bb1b860be12562e1f45b717aef (patch) | |
tree | 2fb5bb2f959861e0bc847526ed21c80936fefaae /winsup/cygwin/cygtls.h | |
parent | 7ea8e226ee52772fed5215f5231b379db5498bd2 (diff) |
* cygtls.h (waitq): Declare structure here.
(_cygtls::wq): Declare.
* cygtls.cc (_cygtls::fixup_after_fork): Clear wq.thread_ev to avoid using an
invalid event handle in forked process.
* dcrt0.cc (waitq_storage): Delete.
(threadstuff): Remove waitq_storage.
* perthread.h (per_thread_waitq): Delete.
(waitq_storage): Delete declaration.
* sigproc.cc (sigproc_init): Remove perthread waitq consideration.
* sigproc.h (waitq): Delete declaration.
* wait.cc (wait4): Use _my_tls waitq structure rather than per_thread.
* cygtls.h (_cygtls::newmask): Delete member.
(_cygtls::deltamask): New member.
* gendef (_sigdelayed): Replace the call to set_process_mask by a call to
set_process_mask_delta.
* exceptions.cc (handle_sigsuspend): Do not filter tempmask. Or
SIG_NONMASKABLE in deltamask as a flag.
(_cygtls::interrupt_setup): Set deltamask only.
(set_process_mask_delta): New function.
(_cygtls::call_signal_handler): Replace the first call to set_process_mask by a
call to set_process_mask_delta.
* tlsoffsets.h: Regenerate.
Diffstat (limited to 'winsup/cygwin/cygtls.h')
-rw-r--r-- | winsup/cygwin/cygtls.h | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/winsup/cygwin/cygtls.h b/winsup/cygwin/cygtls.h index a79f34803..1a9e75f0a 100644 --- a/winsup/cygwin/cygtls.h +++ b/winsup/cygwin/cygtls.h @@ -85,9 +85,20 @@ struct _local_storage char signamebuf[sizeof ("Unknown signal 4294967295 ")]; }; -/* Please keep this file simple. Changes to the below structure may require - acompanying changes to the very simple parser in the perl script - 'gentls_offsets' (<<-- start parsing here). */ +typedef struct struct_waitq +{ + int pid; + int options; + int status; + HANDLE ev; + void *rusage; /* pointer to potential rusage */ + struct struct_waitq *next; + HANDLE thread_ev; +} waitq; + +/* Changes to the below structure may require acompanying changes to the very + simple parser in the perl script 'gentls_offsets' (<<-- start parsing here). +*/ typedef __uint32_t __stack_t; struct _cygtls @@ -96,7 +107,7 @@ struct _cygtls int saved_errno; int sa_flags; sigset_t oldmask; - sigset_t newmask; + sigset_t deltamask; HANDLE event; int *errno_addr; unsigned initialized; @@ -108,6 +119,7 @@ struct _cygtls struct pthread *tid; struct _reent local_clib; struct _local_storage locals; + waitq wq; struct _cygtls *prev, *next; __stack_t *stackptr; int sig; |