Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristopher Faylor <me@cgf.cx>2004-03-12 06:09:28 +0300
committerChristopher Faylor <me@cgf.cx>2004-03-12 06:09:28 +0300
commit9863b78e7bc842bb1b860be12562e1f45b717aef (patch)
tree2fb5bb2f959861e0bc847526ed21c80936fefaae /winsup/cygwin/cygtls.h
parent7ea8e226ee52772fed5215f5231b379db5498bd2 (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.h20
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;