summaryrefslogtreecommitdiffstats
path: root/winsup/cygserver/process.h
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2004-02-06 16:25:58 +0000
committerCorinna Vinschen <corinna@vinschen.de>2004-02-06 16:25:58 +0000
commit373a036f7bcdc9ef29f340752024c976b1695d34 (patch)
tree7fb89276c893d104046bfdb65005ae24a23d3c7d /winsup/cygserver/process.h
parent2a566ac3ef08f056895433468390c116e22a5589 (diff)
downloadcygnal-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.h8
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 (); }