* 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.
This commit is contained in:
@@ -39,17 +39,6 @@ enum procstuff
|
||||
PROC_NOTHING = 5 // nothing, really
|
||||
};
|
||||
|
||||
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;
|
||||
|
||||
struct sigpacket
|
||||
{
|
||||
siginfo_t si;
|
||||
|
Reference in New Issue
Block a user