Author: toad
Date: 2008-01-05 21:38:49 +0000 (Sat, 05 Jan 2008)
New Revision: 16924
Modified:
trunk/freenet/src/freenet/io/comm/UdpSocketHandler.java
Log:
Fix a bug causing a shutdown timeout when exiting before we have started the
UDP loop.
Modified: trunk/freenet/src/freenet/io/comm/UdpSocketHandler.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/UdpSocketHandler.java 2008-01-05
21:26:37 UTC (rev 16923)
+++ trunk/freenet/src/freenet/io/comm/UdpSocketHandler.java 2008-01-05
21:38:49 UTC (rev 16924)
@@ -40,6 +40,7 @@
private boolean _active = true;
private final int listenPort;
private final String title;
+ private boolean _started;
public UdpSocketHandler(int listenPort, InetAddress bindto, Node node,
long startupTime, String title) throws SocketException {
super("UDP packet receiver for "+title);
@@ -290,6 +291,10 @@
lastTimeInSeconds = (int) (System.currentTimeMillis() / 1000);
setDaemon(true);
setPriority(Thread.MAX_PRIORITY);
+ synchronized(this) {
+ if(!_active) return;
+ _started = true;
+ }
super.start();
if(!disableHangChecker) {
Thread checker = new Thread(new USMChecker(),
"MessageCore$USMChecker");
@@ -364,6 +369,7 @@
Logger.normal(this, "Closing.", new Exception("error"));
synchronized (this) {
_active = false;
+ if(!_started) return;
while (!_isDone) {
try {
wait(2000);