* cygheap.h (class process_lock): New class.
* dtable.h (class dtable): Add class process_lock as a friend. * dcrt0.cc (get_exit_lock): Delete. (do_exit): Use process_lock class instead of get_exit_lock. * exceptions.cc (signal_exit): Ditto. * pinfo.cc (pinfo::exit): Ditto. (_pinfo::commune_process): Set process lock around this whole function. (_pinfo::commune_request): Use process_lock rather than myself.lock. * pinfo.h (pinfo::_lock): Delete. (pinfo::initialize_lock): Delete. (pinfo::lock): Delete. (pinfo::unlock): Delete. * winsup.h (get_exit_lock): Delete declaration.
This commit is contained in:
@@ -149,7 +149,6 @@ class pinfo
|
||||
public:
|
||||
HANDLE rd_proc_pipe;
|
||||
HANDLE hProcess;
|
||||
CRITICAL_SECTION _lock;
|
||||
bool waiter_ready;
|
||||
class cygthread *wait_thread;
|
||||
void init (pid_t, DWORD, HANDLE) __attribute__ ((regparm(3)));
|
||||
@@ -166,9 +165,6 @@ public:
|
||||
}
|
||||
void exit (DWORD n) __attribute__ ((noreturn, regparm(2)));
|
||||
void maybe_set_exit_code_from_windows () __attribute__ ((regparm(1)));
|
||||
void initialize_lock () {InitializeCriticalSection (&_lock);}
|
||||
void lock () {EnterCriticalSection (&_lock);}
|
||||
void unlock () {LeaveCriticalSection (&_lock);}
|
||||
_pinfo *operator -> () const {return procinfo;}
|
||||
int operator == (pinfo *x) const {return x->procinfo == procinfo;}
|
||||
int operator == (pinfo &x) const {return x.procinfo == procinfo;}
|
||||
|
Reference in New Issue
Block a user