summaryrefslogtreecommitdiff
path: root/ACE/ace/WIN32_Asynch_IO.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ACE/ace/WIN32_Asynch_IO.cpp')
-rw-r--r--ACE/ace/WIN32_Asynch_IO.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/ACE/ace/WIN32_Asynch_IO.cpp b/ACE/ace/WIN32_Asynch_IO.cpp
index 6ea22949968..a2544c7c2f3 100644
--- a/ACE/ace/WIN32_Asynch_IO.cpp
+++ b/ACE/ace/WIN32_Asynch_IO.cpp
@@ -10,6 +10,7 @@ ACE_RCSID (ace,
(defined (ACE_HAS_WINSOCK2) && (ACE_HAS_WINSOCK2 == 1))
#include "ace/WIN32_Proactor.h"
+#include "ace/Proactor.h"
#include "ace/Message_Block.h"
#include "ace/Service_Config.h"
#include "ace/INET_Addr.h"
@@ -159,6 +160,11 @@ ACE_WIN32_Asynch_Operation::open (const ACE_Handler::Proxy_Ptr &handler_proxy,
if (this->handle_ == ACE_INVALID_HANDLE)
return -1;
+ if (this->proactor_!= 0)
+ // update implementation.
+ this->win32_proactor_ =
+ dynamic_cast <ACE_WIN32_Proactor *>(this->proactor_->implementation ());
+
// Register with the <proactor>.
return this->win32_proactor_->register_handle (this->handle_,
completion_key);