diff options
author | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-09-29 16:26:53 +0000 |
---|---|---|
committer | irfan <irfan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 1997-09-29 16:26:53 +0000 |
commit | 27b39814f99f6029ac0ef04772f3d39eace51b5a (patch) | |
tree | f9e9684abcda93d4263775c8bc141ceec6f094d2 /examples/Service_Configurator | |
parent | 37618ea823d7c688490ba898be240a9f4977044d (diff) | |
download | ATCD-27b39814f99f6029ac0ef04772f3d39eace51b5a.tar.gz |
*** empty log message ***
Diffstat (limited to 'examples/Service_Configurator')
-rw-r--r-- | examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i b/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i index a925df264e1..5a46787ad7c 100644 --- a/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i +++ b/examples/Service_Configurator/IPC-tests/server/Handle_R_Stream.i @@ -3,6 +3,7 @@ #include "ace/Get_Opt.h" +#include "ace/WFMO_Reactor.h" ACE_INLINE Handle_R_Stream::Handle_R_Stream (void) @@ -83,7 +84,23 @@ Handle_R_Stream::handle_input (int) char buf[BUFSIZ]; int bytes; - if (this->accept (this->new_remote_stream) == -1) + int reset_new_handle = 0; +#if defined (ACE_WIN32) + // Try to find out if the implementation of the reactor that we are + // using is the WFMO_Reactor. If so we need to reset the event + // association for the newly created handle. This is because the + // newly created handle will inherit the properties of the listen + // handle, including its event associations. + if (dynamic_cast <ACE_WFMO_Reactor *> (ACE_Reactor::instance ()->implementation ())) + reset_new_handle = 1; +#endif /* ACE_WIN32 */ + + if (this->accept (this->new_remote_stream, // stream + 0, // remote address + 0, // timeout + 1, // restart + reset_new_handle // reset new handler + ) == -1) return -1; else ACE_DEBUG ((LM_INFO, "new_remote_stream fd = %d\n", |