diff options
-rw-r--r-- | apps/JAWS/PROTOTYPE/JAWS/IO.cpp | 8 | ||||
-rw-r--r-- | apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp | 1 |
2 files changed, 7 insertions, 2 deletions
diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO.cpp b/apps/JAWS/PROTOTYPE/JAWS/IO.cpp index 1c8392ff271..6ff09b59645 100644 --- a/apps/JAWS/PROTOTYPE/JAWS/IO.cpp +++ b/apps/JAWS/PROTOTYPE/JAWS/IO.cpp @@ -247,7 +247,7 @@ JAWS_Asynch_IO::accept (JAWS_IO_Handler *ioh, JAWS_Data_Block *db = ioh->message_block (); JAWS_IO_Handler *nioh = - db->policy ()->ioh_factory ()->create_io_handler (); + ioh->factory ()->create_io_handler (); if (nioh == 0) { delete ndb; @@ -275,7 +275,11 @@ JAWS_Asynch_IO::accept (JAWS_IO_Handler *ioh, if (aa.open (*(aioh->handler ()), listen_handle) == -1 || aa.accept (*ndb, bytes_to_read) == -1) - aioh->accept_error (); + { + ioh->factory ()->destroy_io_handler (nioh); + delete ndb; + ioh->accept_error (); + } } void diff --git a/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp b/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp index 9e33423611e..4d730de578e 100644 --- a/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp +++ b/apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp @@ -213,6 +213,7 @@ JAWS_Synch_IO_Handler_Factory::destroy_io_handler (JAWS_IO_Handler *handler) JAWS_Asynch_Handler::JAWS_Asynch_Handler (JAWS_IO_Handler *ioh) : ioh_ (ioh) { + this->proactor (ACE_Proactor::instance ()); } JAWS_Asynch_Handler::~JAWS_Asynch_Handler (void) |