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>2013-03-31 16:35:44 +0400
committerChristopher Faylor <me@cgf.cx>2013-03-31 16:35:44 +0400
commit8f8eeb70ba7354749c78bc5013eeb12f4c18fba0 (patch)
tree5a33777acf2ae03b9f4ef75de12bdccecd1df068 /winsup/cygwin/child_info.h
parent4332090c2d497c08dd1c98df7702f861905b2508 (diff)
* child_info.h (cygheap_exec_info::sigmask): Declare new field.
* cygheap.cc (init_cygheap::find_tls): Rename threadlist_ix -> ix. Only take one pass through thread list, looking for eligible threads to signal. Set a new param indicating that function has found a sigwait* mask. * cygheap.h (init_cygheap::find_tls): Reflect new parameter. * dcrt0.cc (parent_sigmask): New variable. (child_info_spawn::handle_spawn): Save parent's signal mask here. (dll_crt0_1): Restore parent's signal mask to tls sigmask as appropriate. Call sig_dispatch_pending to flush signal queue when we can finally do something with signals. * exceptions.cc (sigpacket::process): Avoid attempting to handle signals if we haven't finished initializing. Rely on the fact that find_tls will do mask checking and don't do it again. Delete ill-named 'dummy' variable. * sigproc.cc (cygheap_exec_info::alloc): Save calling thread's signal mask in new sigmask field. (wait_sig): Try to debug when WFSO fails and DEBUGGING is defined. * thread.cc (pthread::set_tls_self_pointer): Make this a true automatic method rather than inexplicably relying on a thread parameter. (pthread::thread_init_wrapper): Accommodate set_tls_self_pointer change to non-static. Initialize sigmask before setting tid or suffer signal races. * ehread.h (pthread::set_tls_self_pointer): Make non-static, delete parameter.
Diffstat (limited to 'winsup/cygwin/child_info.h')
-rw-r--r--winsup/cygwin/child_info.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/winsup/cygwin/child_info.h b/winsup/cygwin/child_info.h
index 66d6b95aa..17da88ec6 100644
--- a/winsup/cygwin/child_info.h
+++ b/winsup/cygwin/child_info.h
@@ -122,6 +122,7 @@ public:
int envc;
char **envp;
HANDLE myself_pinfo;
+ sigset_t sigmask;
int nchildren;
cchildren children[0];
static cygheap_exec_info *alloc ();