summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2005-02-04 01:15:21 +0000
committerbala <balanatarajan@users.noreply.github.com>2005-02-04 01:15:21 +0000
commit76f39fe16089df2719506b69cda1c88906326c2c (patch)
treec1d8329502d84429e99ec9bd21efa1d75020637c
parentd0b157bfcf1519c623e5c9c3593ba13056f80d08 (diff)
downloadATCD-76f39fe16089df2719506b69cda1c88906326c2c.tar.gz
ChangeLogTag:Thu Feb 3 19:14:17 2005 Balachandran Natarajan <bala@dre.vanderbilt.edu>
-rw-r--r--TAO/ChangeLog7
-rw-r--r--TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp24
2 files changed, 12 insertions, 19 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog
index 50749423a83..edfcb066367 100644
--- a/TAO/ChangeLog
+++ b/TAO/ChangeLog
@@ -1,3 +1,10 @@
+Thu Feb 3 19:14:17 2005 Balachandran Natarajan <bala@dre.vanderbilt.edu>
+
+ * tao/Messaging/Asynch_Reply_Dispatcher.cpp:
+
+ Reverted this patch "Thu Jan 27 20:01:21 2005 Balachandran
+ Natarajan <bala@dre.vanderbilt.edu>"
+
Wed Feb 2 22:17:49 2005 Jeff Parsons <j.parsons@vanderbilt.edu>
* TAO_IDL/be/be_visitor_arg_traits.cpp:
diff --git a/TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp b/TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp
index 3af46d02c25..c6c442bcaaf 100644
--- a/TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp
+++ b/TAO/tao/Messaging/Asynch_Reply_Dispatcher.cpp
@@ -211,7 +211,7 @@ TAO_Asynch_Reply_Dispatcher::connection_closed (void)
(void) this->decr_refcount ();
}
-
+// AMI Timeout Handling Begin
void
TAO_Asynch_Reply_Dispatcher::reply_timed_out (void)
@@ -232,24 +232,10 @@ TAO_Asynch_Reply_Dispatcher::reply_timed_out (void)
timeout_failure._tao_encode (out_cdr ACE_ENV_ARG_PARAMETER);
ACE_TRY_CHECK;
- // AMI Timeout Handling Begin
- bool cont_dispatch =
- this->try_dispatch_reply ();
-
- if (this->timeout_handler_)
- {
- this->timeout_handler_->remove_reference ();
- this->timeout_handler_ = 0;
- }
-
- // AMI Timeout Handling End
-
- // A simple protocol that we follow. If the timeout had been handled
- // by another thread, the last refcount for us will be held by the
- // timeout handler. Hence the above call to remove_reference () will
- // delete us. We then have to rely on the status of our stack
- // variable to exit safely.
- if (!cont_dispatch)
+ // This is okay here... Everything relies on our refcount being
+ // held by the timeout handler, whose refcount in turn is held
+ // by the reactor.
+ if (!this->try_dispatch_reply ())
return;
// Turn into an output CDR