* child_info.h (child_info_fork::parent_wr_proc_pipe): New element.
* fork.cc (fork_parent): Set parent_wr_proc. * pinfo.cc (set_myself): Close child_proc_info->parent_wr_proc if it exists rather than trying to get value from parent _pinfo. * pinfo.h (enum parent_aleter): New enum. (pinfo::alert_parent): Declare as returning a value. (pinfo::parent_alive): New function. * pinfo.cc (pinfo::alert_parent): Set wr_proc_pipe to invalid non-NULL value when parent disappears. Return success of operation. (proc_waiter): Use __ALERT_* enum for control since these are not really signals. Implement __ALERT_ALIVE. * sigproc.cc (my_parent_is_alive): Eliminate. * sigproc.h (my_parent_is_alive): Ditto for declaration. (__SIGREPARENT): Eliminate.
This commit is contained in:
@@ -22,8 +22,7 @@ enum
|
||||
__SIGDELETE = -(NSIG + 5),
|
||||
__SIGFLUSHFAST = -(NSIG + 6),
|
||||
__SIGHOLD = -(NSIG + 7),
|
||||
__SIGNOHOLD = -(NSIG + 8),
|
||||
__SIGREPARENT = (NSIG + 2)
|
||||
__SIGNOHOLD = -(NSIG + 8)
|
||||
};
|
||||
#endif
|
||||
|
||||
@@ -55,7 +54,6 @@ struct sigpacket
|
||||
extern HANDLE signal_arrived;
|
||||
extern HANDLE sigCONT;
|
||||
|
||||
bool __stdcall my_parent_is_alive ();
|
||||
void __stdcall sig_dispatch_pending (bool fast = false);
|
||||
#ifdef _PINFO_H
|
||||
extern "C" void __stdcall set_signal_mask (sigset_t newmask, sigset_t = myself->getsigmask ());
|
||||
|
Reference in New Issue
Block a user