summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO.cpp8
-rw-r--r--apps/JAWS/PROTOTYPE/JAWS/IO_Handler.cpp1
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)