Try again to prevent two EventPumpers

This commit is contained in:
zzz
2009-06-22 12:57:38 +00:00
parent 4a6d0e4ba2
commit abc83362e7
2 changed files with 6 additions and 6 deletions

View File

@ -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();

View File

@ -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();