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