summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-02-15 01:07:28 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2002-02-15 01:07:28 +0000
commit629f931f801c574c2ccecb89de79c6021e59c729 (patch)
tree4b213866e2828e8cb69573a1b6105525cd5a53bd
parentda527ef9278193e30d123f7d6d5ebe8fcbef1679 (diff)
downloadATCD-629f931f801c574c2ccecb89de79c6021e59c729.tar.gz
ChangeLogTag:Thu Feb 14 17:03:48 2002 Carlos O'Ryan <coryan@uci.edu>
-rw-r--r--TAO/ChangeLogs/ChangeLog-02a11
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Reactive_ConsumerControl.cpp7
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Reactive_SupplierControl.cpp7
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