summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-07-03 17:19:57 +0000
committercoryan <coryan@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>1998-07-03 17:19:57 +0000
commit0fa061278f97f7ca8f0c3ce57ca38a55a1939e50 (patch)
tree7c56f25b5e3e7c5845c9ee90f1959e2b01e5f98c
parentc3bb63ca89ec0876f347fdebab891f6342e1a50a (diff)
downloadATCD-0fa061278f97f7ca8f0c3ce57ca38a55a1939e50.tar.gz
ChangeLogTag:Fri Jul 03 11:34:38 1998 Carlos O'Ryan <coryan@JIG>
-rw-r--r--TAO/ChangeLog-98c12
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/EC_Gateway.cpp4
-rw-r--r--TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp2
3 files changed, 15 insertions, 3 deletions
diff --git a/TAO/ChangeLog-98c b/TAO/ChangeLog-98c
index 9eb9451865a..93c89062285 100644
--- a/TAO/ChangeLog-98c
+++ b/TAO/ChangeLog-98c
@@ -6,8 +6,16 @@ Fri Jul 03 11:36:04 1998 David L. Levine <levine@cs.wustl.edu>
Fri Jul 03 11:34:38 1998 Carlos O'Ryan <coryan@JIG>
- * orbsvcs/tests/EC_Throughput/Makefile:
- Added new object files to the Makefile.
+ * orbsvcs/tests/EC_Throughput/Makefile:
+ Added new object files to the Makefile.
+
+ * orbsvcs/orbsvcs/Event/EC_Gateway.cpp:
+ Protected against null publication or subscription list.
+
+ * orbsvcs/orbsvcs/Event/Event_Channel.cpp:
+ Removed a possible race condition in consumer
+ disconnections. Thanks to Thomas Venturella <tventurell@mdc.com>
+ for the last two fixes.
Fri Jul 03 08:40:28 1998 Steve Huston <shuston@riverace.com>
diff --git a/TAO/orbsvcs/orbsvcs/Event/EC_Gateway.cpp b/TAO/orbsvcs/orbsvcs/Event/EC_Gateway.cpp
index fa1df6dca2a..1eab11d593e 100644
--- a/TAO/orbsvcs/orbsvcs/Event/EC_Gateway.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/EC_Gateway.cpp
@@ -164,6 +164,10 @@ TAO_EC_Gateway_IIOP::update_consumer (RtecEventChannelAdmin::ConsumerQOS& sub,
this->close (env);
if (env.exception () != 0) return;
+ if (sub.dependencies.length () == 0
+ || pub.publications.length () == 0)
+ return;
+
for (CORBA::ULong i = 0; i < sub.dependencies.length (); ++i)
{
sub.dependencies[i].rt_info = this->rmt_info_;
diff --git a/TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp b/TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp
index c3dee39e2e4..e923549576c 100644
--- a/TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp
+++ b/TAO/orbsvcs/orbsvcs/Event/Event_Channel.cpp
@@ -576,8 +576,8 @@ void
ACE_Push_Consumer_Proxy::disconnect_push_supplier (CORBA::Environment &_env)
{
ACE_TIMEPROBE_PRINT;
- this->consumer_module_->disconnecting (this, _env);
this->push_consumer_ = 0;
+ this->consumer_module_->disconnecting (this, _env);
}
void