summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2002-08-02 05:35:44 +0000
committerbala <balanatarajan@users.noreply.github.com>2002-08-02 05:35:44 +0000
commit3ef8610b60030c69cd74b4e244726f5b1ad59769 (patch)
treed0f640b0c8d6026338312c5abe15814505afd39f
parent7495cafc63f30552f774b9b0b2e1a66bb7301707 (diff)
downloadATCD-3ef8610b60030c69cd74b4e244726f5b1ad59769.tar.gz
ChangeLogTag: Fri Aug 2 00:29:43 2002 Balachandran Natarajan <bala@cs.wustl.edu>
-rw-r--r--TAO/ChangeLog17
-rw-r--r--TAO/tao/Bind_Dispatcher_Guard.cpp7
-rw-r--r--TAO/tao/Bind_Dispatcher_Guard.i10
3 files changed, 24 insertions, 10 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index e82c0a0b7ac..e908178f37a 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,20 @@
+Fri Aug 2 00:29:43 2002 Balachandran Natarajan <bala@cs.wustl.edu>
+
+ * tao/Bind_Dispatcher_Guard.i :
+ * tao/Bind_Dispatcher_Guard.cpp: Moved the destructor from the
+ inline file to the cpp file. Sounds crazy, but true. g++ seems
+ to miss calling the destructor of this object (which was in the
+ inlined file) created on the stack of the GIOP_Invocation object.
+
+ When a timeout occurs the stack unwinds but the destrcutor which
+ unbinds the reply dispatcher never gets called. This leaves the
+ reply dispatcher in the map and all hell breaks loose when the
+ reply actually shows up! This problem showed up only in our Full
+ builds on sirion which resulted in the failure of the Timeout
+ test. My testing on sirion with this change seems to work
+ fine. Let us wait and watch our daily builds to see the actual
+ results.
+
Thu Aug 1 21:00:03 2002 Ossama Othman <ossama@uci.edu>
* orbsvcs/orbsvcs/LoadBalancing/LB_LeastLoaded.cpp (get_location):
diff --git a/TAO/tao/Bind_Dispatcher_Guard.cpp b/TAO/tao/Bind_Dispatcher_Guard.cpp
index 7243a93e009..38618f89d10 100644
--- a/TAO/tao/Bind_Dispatcher_Guard.cpp
+++ b/TAO/tao/Bind_Dispatcher_Guard.cpp
@@ -16,3 +16,10 @@
#if !defined (__ACE_INLINE__)
# include "tao/Bind_Dispatcher_Guard.i"
#endif /* ! __ACE_INLINE__ */
+
+TAO_Bind_Dispatcher_Guard::~TAO_Bind_Dispatcher_Guard (void)
+{
+ if (this->status_ == 0) {
+ this->tms_->unbind_dispatcher (this->request_id_);
+ }
+}
diff --git a/TAO/tao/Bind_Dispatcher_Guard.i b/TAO/tao/Bind_Dispatcher_Guard.i
index f0a5747940f..3c497e3c03f 100644
--- a/TAO/tao/Bind_Dispatcher_Guard.i
+++ b/TAO/tao/Bind_Dispatcher_Guard.i
@@ -30,16 +30,6 @@ TAO_Bind_Dispatcher_Guard::TAO_Bind_Dispatcher_Guard (
this->rd_);
}
-
-ACE_INLINE
-TAO_Bind_Dispatcher_Guard::~TAO_Bind_Dispatcher_Guard (void)
-{
- if (this->status_ == 0) {
- this->tms_->unbind_dispatcher (this->request_id_);
- }
-}
-
-
ACE_INLINE int &
TAO_Bind_Dispatcher_Guard::status (void)
{