diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 2000-01-18 04:16:59 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 2000-01-18 04:16:59 +0000 |
commit | 5edac8ca7a4545cc74b256538dec94f9c8598344 (patch) | |
tree | 9d67308398a783953b71533e9cc07f60671a1239 /ace/Process_Manager.cpp | |
parent | 948d6bfec7f0b11d5ea06b8c71bc7f076832fdb3 (diff) | |
download | ATCD-5edac8ca7a4545cc74b256538dec94f9c8598344.tar.gz |
ChangeLogTag:Mon Jan 17 18:03:17 2000 Douglas C. Schmidt <schmidt@tango.cs.wustl.edu>
Diffstat (limited to 'ace/Process_Manager.cpp')
-rw-r--r-- | ace/Process_Manager.cpp | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/ace/Process_Manager.cpp b/ace/Process_Manager.cpp index 5d5d14ea1c9..567d2a93af7 100644 --- a/ace/Process_Manager.cpp +++ b/ace/Process_Manager.cpp @@ -168,6 +168,7 @@ ACE_Process_Manager::open (size_t size, { ACE_TRACE ("ACE_Process_Manager::open"); +#if !defined (ACE_LACKS_SETPGID) // Set up a process group so that the thread that opened this // Manager will be able to put children into its own group and wait // for them. @@ -176,6 +177,7 @@ ACE_Process_Manager::open (size_t size, ASYS_TEXT ("%p.\n"), ASYS_TEXT ("ACE_Process_Manager::open: can't create a ") ASYS_TEXT ("process group; some wait functions may fail"))); +#endif /* ACE_LACKS_SETPGID */ if (r) { @@ -252,11 +254,13 @@ ACE_Process_Manager::close (void) { ACE_TRACE ("ACE_Process_Manager::close"); +#if !defined (ACE_WIN32) if (this->reactor ()) { this->reactor ()->remove_handler (this, 0); this->reactor (0); } +#endif /* !ACE_WIN32 */ ACE_MT (ACE_GUARD_RETURN (ACE_Thread_Mutex, ace_mon, this->lock_, -1)); @@ -581,6 +585,13 @@ ACE_Process_Manager::remove_proc (size_t i) this->process_table_[i].exit_notify_ = 0; } +#if defined (ACE_WIN32) + ACE_Reactor *r = this->reactor (); + if (r != 0) + r->remove_handler (this->process_table_[i].process_->gethandle (), + ACE_Event_Handler::DONT_CALL); +#endif /* ACE_WIN32 */ + this->process_table_[i].process_->unmanage (); this->process_table_[i].process_ = 0; |