diff options
author | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-07-15 21:35:07 +0000 |
---|---|---|
committer | nanbor <nanbor@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1999-07-15 21:35:07 +0000 |
commit | 752578774a45c949a8ea3c4afeae0188039f85d8 (patch) | |
tree | 16464735646397f994d6a534870767d8458bc51d /ace/Service_Manager.cpp | |
parent | 5f5bd628a3699eb7f3f4c2bb191e9537ba70554d (diff) | |
download | ATCD-752578774a45c949a8ea3c4afeae0188039f85d8.tar.gz |
ChangeLogTag:Thu Jul 15 16:20:43 1999 Nanbor Wang <nanbor@cs.wustl.edu>
Diffstat (limited to 'ace/Service_Manager.cpp')
-rw-r--r-- | ace/Service_Manager.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/ace/Service_Manager.cpp b/ace/Service_Manager.cpp index d22733c872d..3e49485f5f7 100644 --- a/ace/Service_Manager.cpp +++ b/ace/Service_Manager.cpp @@ -103,7 +103,8 @@ ACE_Service_Manager::init (int argc, ASYS_TCHAR *argv[]) break; } - if (this->open (local_addr) == -1) + if (this->get_handle () == ACE_INVALID_HANDLE && + this->open (local_addr) == -1) ACE_ERROR_RETURN ((LM_ERROR, ASYS_TEXT ("%p\n"), ASYS_TEXT ("open")), -1); @@ -128,11 +129,17 @@ ACE_Service_Manager::fini (void) { ACE_TRACE ("ACE_Service_Manager::fini"); + int retv = 0; if (this->get_handle () != ACE_INVALID_HANDLE) - return ACE_Reactor::instance ()->remove_handler - (this, - ACE_Event_Handler::ACCEPT_MASK); - return 0; + { + retv = ACE_Reactor::instance ()->remove_handler + (this, + ACE_Event_Handler::ACCEPT_MASK | + ACE_Event_Handler::DONT_CALL); + this->handle_close (ACE_INVALID_HANDLE, + ACE_Event_Handler::NULL_MASK); + } + return retv; } ACE_HANDLE |