From 373a036f7bcdc9ef29f340752024c976b1695d34 Mon Sep 17 00:00:00 2001 From: Corinna Vinschen Date: Fri, 6 Feb 2004 16:25:58 +0000 Subject: * 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. --- winsup/cygserver/process.h | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'winsup/cygserver/process.h') 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 (); } -- cgit v1.2.3