summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbala <balanatarajan@users.noreply.github.com>2002-11-30 00:27:37 +0000
committerbala <balanatarajan@users.noreply.github.com>2002-11-30 00:27:37 +0000
commit793166c1a6788ef3a04d2d9a2092ee088e036d7f (patch)
treeb98b59b1f605a364b4fd87ed2ac5e56baaa94d64
parent4f654bbe98e694a0b891d2925174cfb78f47fcb4 (diff)
downloadATCD-793166c1a6788ef3a04d2d9a2092ee088e036d7f.tar.gz
ChangeLogTag: Fri Nov 29 19:25:59 2002 Balachandran Natarajan <bala@isis-server.isis.vanderbilt.edu>
-rw-r--r--TAO/ChangeLog6
-rw-r--r--TAO/tao/Transport.cpp19
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 ();