diff options
author | schmidt <douglascraigschmidt@users.noreply.github.com> | 1997-03-22 21:03:22 +0000 |
---|---|---|
committer | schmidt <douglascraigschmidt@users.noreply.github.com> | 1997-03-22 21:03:22 +0000 |
commit | cf65201234014d5509a3b635e6be5924909a5e07 (patch) | |
tree | f4b9df9dbe9edda1ce7d4cb05afd67b4bcd2d05b /ace/Connector.cpp | |
parent | d726503942f934532a5a91077303150dae1d638c (diff) | |
download | ATCD-cf65201234014d5509a3b635e6be5924909a5e07.tar.gz |
*** empty log message ***
Diffstat (limited to 'ace/Connector.cpp')
-rw-r--r-- | ace/Connector.cpp | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/ace/Connector.cpp b/ace/Connector.cpp index e0585dd1711..2339549c475 100644 --- a/ace/Connector.cpp +++ b/ace/Connector.cpp @@ -123,6 +123,7 @@ ACE_Connector<SH, PR_CO_2>::open (ACE_Reactor *reactor) { ACE_TRACE ("ACE_Connector<SH, PR_CO_2>::open"); this->reactor_ = reactor; + this->closing_ = 0; return 0; } @@ -442,9 +443,15 @@ ACE_Connector<SH, PR_CO_2>::handle_close (ACE_HANDLE, ACE_Reactor_Mask mask) { ACE_TRACE ("ACE_Connector<SH, PR_CO_2>::handle_close"); - if (this->reactor_ != 0) + if (this->reactor_ != 0 && this->closing_ == 0) { - // Remove all timer objects from the Reactor's Timer_Queue. + // We're closing down now, so make sure not to call ourselves + // recursively via other calls to handle_close() (e.g., from the + // Timer_Queue). + this->closing_ = 1; + + // Remove all timer objects associated with <this> object from + // the <Reactor>'s Timer_Queue. this->reactor_->cancel_timer (this); MAP_ITERATOR mi (this->handler_map_); |