From abc83362e767950ef5dc0c3ecbdbfcc5ac6dd1da Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Mon, 22 Jun 2009 12:57:38 +0000 Subject: [PATCH] Try again to prevent two EventPumpers --- .../java/src/net/i2p/router/transport/ntcp/EventPumper.java | 6 +++--- .../src/net/i2p/router/transport/ntcp/NTCPTransport.java | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java b/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java index 3f9e5acfc4..89c12250c4 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java +++ b/router/java/src/net/i2p/router/transport/ntcp/EventPumper.java @@ -31,7 +31,7 @@ import net.i2p.util.Log; public class EventPumper implements Runnable { private RouterContext _context; private Log _log; - private boolean _alive; + private volatile boolean _alive; private Selector _selector; private final List _bufCache; private final List _wantsRead = new ArrayList(16); @@ -64,7 +64,7 @@ public class EventPumper implements Runnable { _expireIdleWriteTime = MAX_EXPIRE_IDLE_TIME; } - public void startPumping() { + public synchronized void startPumping() { if (_log.shouldLog(Log.INFO)) _log.info("Starting pumper"); // _wantsRead = new ArrayList(16); @@ -83,7 +83,7 @@ public class EventPumper implements Runnable { } } - public void stopPumping() { + public synchronized void stopPumping() { _alive = false; if (_selector != null && _selector.isOpen()) _selector.wakeup(); diff --git a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java index 9f6b8e7ca4..84cd767321 100644 --- a/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java +++ b/router/java/src/net/i2p/router/transport/ntcp/NTCPTransport.java @@ -416,7 +416,7 @@ public class NTCPTransport extends TransportImpl { private static final int NUM_CONCURRENT_READERS = 3; private static final int NUM_CONCURRENT_WRITERS = 3; - public RouterAddress startListening() { + public synchronized RouterAddress startListening() { if (_log.shouldLog(Log.DEBUG)) _log.debug("Starting ntcp transport listening"); _finisher.start(); _pumper.startPumping(); @@ -428,7 +428,7 @@ public class NTCPTransport extends TransportImpl { return bindAddress(); } - public RouterAddress restartListening(RouterAddress addr) { + public synchronized RouterAddress restartListening(RouterAddress addr) { if (_log.shouldLog(Log.DEBUG)) _log.debug("Restarting ntcp transport listening"); _finisher.start(); _pumper.startPumping(); @@ -602,7 +602,7 @@ public class NTCPTransport extends TransportImpl { * This doesn't (completely) block, caller should check isAlive() * before calling startListening() or restartListening() */ - public void stopListening() { + public synchronized void stopListening() { if (_log.shouldLog(Log.DEBUG)) _log.debug("Stopping ntcp transport"); _pumper.stopPumping(); _writer.stopWriting(); -- GitLab