diff options
author | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-02-15 01:07:28 +0000 |
---|---|---|
committer | coryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795> | 2002-02-15 01:07:28 +0000 |
commit | 629f931f801c574c2ccecb89de79c6021e59c729 (patch) | |
tree | 4b213866e2828e8cb69573a1b6105525cd5a53bd | |
parent | da527ef9278193e30d123f7d6d5ebe8fcbef1679 (diff) | |
download | ATCD-629f931f801c574c2ccecb89de79c6021e59c729.tar.gz |
ChangeLogTag:Thu Feb 14 17:03:48 2002 Carlos O'Ryan <coryan@uci.edu>
-rw-r--r-- | TAO/ChangeLogs/ChangeLog-02a | 11 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp | 7 | ||||
-rw-r--r-- | TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp | 7 |
3 files changed, 21 insertions, 4 deletions
diff --git a/TAO/ChangeLogs/ChangeLog-02a b/TAO/ChangeLogs/ChangeLog-02a index b7b953891ed..6b48fc17c6d 100644 --- a/TAO/ChangeLogs/ChangeLog-02a +++ b/TAO/ChangeLogs/ChangeLog-02a @@ -1,3 +1,14 @@ +Thu Feb 14 17:03:48 2002 Carlos O'Ryan <coryan@uci.edu> + + * orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp (shutdown): + * orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp (shutdown): + Fixed event channel shutdown problems: the event channel + removes some Event_Handlers from the Reactor, but did not reset + the reactor pointer in those Event_Handlers. If the ORB Reactor is + deleted before the event channel (not that strange in some cases + because the Reactor) the Event_Handler destructor tries to + remove itself from the Reactor, and all hell breaks loose. + Thu Feb 14 15:20:19 2002 Carlos O'Ryan <coryan@uci.edu> * orbsvcs/orbsvcs/CosEvent/CEC_ProxyPushConsumer.cpp (supplier_non_existent): diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp index 659e6f0250b..000e9605eeb 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp @@ -138,8 +138,11 @@ TAO_EC_Reactive_ConsumerControl::activate (void) int TAO_EC_Reactive_ConsumerControl::shutdown (void) { - return this->reactor_->remove_handler (&this->adapter_, - ACE_Event_Handler::DONT_CALL); + int r = + this->reactor_->remove_handler (&this->adapter_, + ACE_Event_Handler::DONT_CALL); + this->adapter_.reactor (0); + return r; } void diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp index bfb106ef3e3..fb167ea777b 100644 --- a/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp +++ b/TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp @@ -138,8 +138,11 @@ TAO_EC_Reactive_SupplierControl::activate (void) int TAO_EC_Reactive_SupplierControl::shutdown (void) { - return this->reactor_->remove_handler (&this->adapter_, - ACE_Event_Handler::DONT_CALL); + int r = + this->reactor_->remove_handler (&this->adapter_, + ACE_Event_Handler::DONT_CALL); + this->adapter_.reactor (0); + return r; } void |