summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Huston <shuston@riverace.com>2011-01-17 20:58:13 +0000
committerSteve Huston <shuston@riverace.com>2011-01-17 20:58:13 +0000
commit1421a32e628003d747219d8c26281691169b7f7f (patch)
tree278d7847cd477a8d580449143013bc4965db925d
parentf68b2b565363ccad73f682ac05d856551965b53d (diff)
downloadATCD-1421a32e628003d747219d8c26281691169b7f7f.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 e4491b8ff0b..0d3d70ea59d 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_)