diff options
author | Corinna Vinschen <corinna@vinschen.de> | 2004-02-06 16:25:58 +0000 |
---|---|---|
committer | Corinna Vinschen <corinna@vinschen.de> | 2004-02-06 16:25:58 +0000 |
commit | 373a036f7bcdc9ef29f340752024c976b1695d34 (patch) | |
tree | 7fb89276c893d104046bfdb65005ae24a23d3c7d /winsup/cygserver/process.h | |
parent | 2a566ac3ef08f056895433468390c116e22a5589 (diff) | |
download | cygnal-373a036f7bcdc9ef29f340752024c976b1695d34.tar.gz cygnal-373a036f7bcdc9ef29f340752024c976b1695d34.tar.bz2 cygnal-373a036f7bcdc9ef29f340752024c976b1695d34.zip |
* bsd_mutex.cc (_msleep): Handle PCATCH using signal_arrived event.
* client.cc: Include sigproc.h.
* msg.cc (client_request_msg::serve): Accomodate third parameter to
process::process.
* sem.cc (client_request_sem::serve): Ditto.
* shm.cc (client_request_shm::serve): Ditto.
* process.cc (process::process): Duplicate signal_arrived into
Cygserver process space.
(process::~process): Close _signal_arrived handle.
(process_cache::process): Add signal_arrived handling.
* process.h (process::process): Add signal_arrived parameter.
(process:signal_arrived): New read accessor.
(process:_signal_arrived): New member.
(process_cache::process): Add signal_arrived parameter.
Diffstat (limited to 'winsup/cygserver/process.h')
-rw-r--r-- | winsup/cygserver/process.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/winsup/cygserver/process.h b/winsup/cygserver/process.h index c062ee193..90d7c94b5 100644 --- a/winsup/cygserver/process.h +++ b/winsup/cygserver/process.h @@ -71,12 +71,14 @@ class process friend class process_cleanup; public: - process (pid_t cygpid, DWORD winpid); + process (pid_t cygpid, DWORD winpid, + HANDLE signal_arrived = INVALID_HANDLE_VALUE); ~process (); pid_t cygpid () const { return _cygpid; } DWORD winpid () const { return _winpid; } HANDLE handle () const { return _hProcess; } + HANDLE signal_arrived () const { return _signal_arrived; } bool is_active () const { return _exit_status == STILL_ACTIVE; } @@ -90,6 +92,7 @@ private: const pid_t _cygpid; const DWORD _winpid; HANDLE _hProcess; + HANDLE _signal_arrived; long _cleaning_up; DWORD _exit_status; // Set in the constructor and in exit_code (). cleanup_routine *_routines_head; @@ -131,7 +134,8 @@ public: process_cache (unsigned int initial_workers); ~process_cache (); - class process *process (pid_t cygpid, DWORD winpid); + class process *process (pid_t cygpid, DWORD winpid, + HANDLE signal_arrived = INVALID_HANDLE_VALUE); bool running () const { return _queue.running (); } |