From fab3c0df3ef4a55fb432fb6242fd39b37a01efcd Mon Sep 17 00:00:00 2001 From: jrandom Date: Thu, 26 Aug 2004 03:08:19 +0000 Subject: [PATCH] take care of another scenario where a thread can leak --- .../src/net/i2p/router/transport/tcp/TCPConnection.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java b/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java index b2d2260ef..ee92c1e6f 100644 --- a/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java +++ b/router/java/src/net/i2p/router/transport/tcp/TCPConnection.java @@ -464,7 +464,12 @@ class TCPConnection implements I2NPMessageReader.I2NPMessageEventListener { private OutNetMessage getNext() { OutNetMessage msg = null; - while ( (msg == null) && (_running) ) { + // _running is kept seperate from _closed, since _running refers + // to the ConnectionRunner, while _closed refers to the TCPConnection + // (in case we want to pause running, etc). they both need to be + // checked here, since the connection may be closed before this + // thread even gets started up + while ( (msg == null) && (_running) && (!_closed) ) { synchronized (_toBeSent) { if (_toBeSent.size() <= 0) { try {