diff options
author | bala <balanatarajan@users.noreply.github.com> | 2002-11-30 00:27:37 +0000 |
---|---|---|
committer | bala <balanatarajan@users.noreply.github.com> | 2002-11-30 00:27:37 +0000 |
commit | 793166c1a6788ef3a04d2d9a2092ee088e036d7f (patch) | |
tree | b98b59b1f605a364b4fd87ed2ac5e56baaa94d64 | |
parent | 4f654bbe98e694a0b891d2925174cfb78f47fcb4 (diff) | |
download | ATCD-793166c1a6788ef3a04d2d9a2092ee088e036d7f.tar.gz |
ChangeLogTag: Fri Nov 29 19:25:59 2002 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu>
-rw-r--r-- | TAO/ChangeLog | 6 | ||||
-rw-r--r-- | TAO/tao/Transport.cpp | 19 |
2 files changed, 15 insertions, 10 deletions
diff --git a/TAO/ChangeLog b/TAO/ChangeLog index f649b0d1a40..2533b944571 100644 --- a/TAO/ChangeLog +++ b/TAO/ChangeLog @@ -1,3 +1,9 @@ +Fri Nov 29 19:25:59 2002 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu> + + * tao/Transport.cpp: Prevented the thread doing the server side + purging from waiting on the LF and waiting for connection + closure, since its of no use. + Fri Nov 29 18:13:03 2002 Nanbor Wang <nanbor@cs.wustl.edu> * orbsvcs/orbsvcs/Notify/ThreadPool_Task.cpp: Changed to use diff --git a/TAO/tao/Transport.cpp b/TAO/tao/Transport.cpp index ccc4259d486..8cffc50acd1 100644 --- a/TAO/tao/Transport.cpp +++ b/TAO/tao/Transport.cpp @@ -681,7 +681,9 @@ void TAO_Transport::close_connection_no_purge (void) { TAO_Connection_Handler * eh = this->invalidate_event_handler (); - this->close_connection_shared (0, eh); + + this->close_connection_shared (0, + eh); } void @@ -700,16 +702,14 @@ TAO_Transport::close_connection_shared (int purge, return; } - - int retval = 0; - // Set the event handler in the connection close wait state. (void) eh->connection_close_wait (); // NOTE: If the wait strategy is in blocking mode, then there is no // chance that it could be inside the reactor. We can safely skip - // driving the LF. - if (this->ws_->non_blocking ()) + // driving the LF. If <purge> is 0, then we are cleaned up by the + // cache. So no point in driving the LF either. + if (this->ws_->non_blocking () && purge) { // NOTE: This is a work around for BUG 1020. We drive the leader // follower for a predetermined amount of time. Ideally this @@ -717,15 +717,14 @@ TAO_Transport::close_connection_shared (int purge, // cut. Doing that will be a todo.. ACE_Time_Value tv (ACE_DEFAULT_TIMEOUT, 0); - retval = - this->orb_core_->leader_follower ().wait_for_event (eh, + this->orb_core_->leader_follower ().wait_for_event (eh, this, - &tv); + &tv); } // We need to explicitly shut it down to avoid memory leaks. - if (retval == -1 || + if (!eh->successful () || !this->ws_->non_blocking ()) { eh->close_connection (); |