summaryrefslogtreecommitdiff
path: root/ace
diff options
context:
space:
mode:
authorschmidt <douglascraigschmidt@users.noreply.github.com>2006-03-30 19:44:14 +0000
committerschmidt <douglascraigschmidt@users.noreply.github.com>2006-03-30 19:44:14 +0000
commit50b4cf32532a6c055f6f5471c20737b5627838ed (patch)
treeb753fabad2c96246120eb9f2d066549433d76776 /ace
parent6818883a3aef75fef7eec929771b37f2de5859cb (diff)
downloadATCD-50b4cf32532a6c055f6f5471c20737b5627838ed.tar.gz
ChangeLogTag:Thu Mar 30 10:24:50 2006 Douglas C. Schmidt <schmidt@cse.wustl.edu>
Diffstat (limited to 'ace')
-rw-r--r--ace/Event_Handler.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/ace/Event_Handler.cpp b/ace/Event_Handler.cpp
index f9d0c30a8d5..7556e38cdac 100644
--- a/ace/Event_Handler.cpp
+++ b/ace/Event_Handler.cpp
@@ -254,12 +254,15 @@ ACE_THR_FUNC_RETURN
ACE_Event_Handler::read_adapter (void *args)
{
ACE_Event_Handler *this_ptr = static_cast<ACE_Event_Handler *> (args);
+ Ace_Reactor *r = this_ptr->reactor ();
while (this_ptr->handle_input (ACE_STDIN) != -1)
continue;
this_ptr->handle_close (ACE_STDIN, ACE_Event_Handler::READ_MASK);
- this_ptr->reactor ()->notify ();
+ // It's possible for handle_close() to "delete this" so we need to
+ // cache the reactor pointer and use it here.
+ r->notify ();
return 0;
}