summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2011-01-17 20:57:26 +0000
committerSteve Huston <shuston@riverace.com>2011-01-17 20:57:26 +0000
commitf47ce30d9c49394988e8c72adefea2e29b1f2fd6 (patch)
treeb9a55396d06c68120ec6fe6e7e665a0b414509bf
parent77b2a336f5aa6c708b26f91e859ee5880a9390dc (diff)
downloadATCD-f47ce30d9c49394988e8c72adefea2e29b1f2fd6.tar.gz
ChangeLogTag:Mon Jan 17 20:47:01 UTC 2011 Steve Huston <shuston@riverace.com>
-rw-r--r--ChangeLog6
-rw-r--r--ace/Asynch_Acceptor.cpp6
2 files changed, 10 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 85b85b8b68e..cbdf6361557 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Mon Jan 17 20:47:01 UTC 2011 Steve Huston <shuston@riverace.com>
+
+ * ace/Asynch_Acceptor.cpp (handle_accept): If the new handler has
+ already set its own proactor pointer, don't reset it. Fixes
+ Bugzilla #3947.
+
Wed Jan 5 23:10:05 UTC 2011 Steve Huston <shuston@riverace.com>
* tests/Bug_2610_Regression_Test.cpp: Fixed a bunch of ACE_ERROR
diff --git a/ace/Asynch_Acceptor.cpp b/ace/Asynch_Acceptor.cpp
index d87ca0d07dc..e44698abc4e 100644
--- a/ace/Asynch_Acceptor.cpp
+++ b/ace/Asynch_Acceptor.cpp
@@ -299,8 +299,10 @@ ACE_Asynch_Acceptor<HANDLER>::handle_accept (const ACE_Asynch_Accept::Result &re
// If no errors
if (!error)
{
- // Update the Proactor.
- new_handler->proactor (this->proactor ());
+ // Update the Proactor unless make_handler() or constructed handler
+ // set up its own.
+ if (new_handler->proactor () == 0)
+ new_handler->proactor (this->proactor ());
// Pass the addresses
if (this->pass_addresses_)