diff options
author | bala <balanatarajan@users.noreply.github.com> | 2002-08-02 05:35:44 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2002-08-02 05:35:44 +0000 |
commit | 3ef8610b60030c69cd74b4e244726f5b1ad59769 (patch) | |
tree | d0f640b0c8d6026338312c5abe15814505afd39f | |
parent | 7495cafc63f30552f774b9b0b2e1a66bb7301707 (diff) | |
download | ATCD-3ef8610b60030c69cd74b4e244726f5b1ad59769.tar.gz |
ChangeLogTag: Fri Aug 2 00:29:43 2002 Balachandran Natarajan <bala@cs.wustl.edu>
-rw-r--r-- | TAO/ChangeLog | 17 | ||||
-rw-r--r-- | TAO/tao/Bind_Dispatcher_Guard.cpp | 7 | ||||
-rw-r--r-- | TAO/tao/Bind_Dispatcher_Guard.i | 10 |
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) { |