[freenet-cvs] r14605 - in trunk/freenet/src/freenet: client/async clients/http io io/xfer node node/fcp node/updater support

toad at freenetproject.org toad at freenetproject.org
Sat Aug 11 15:34:21 UTC 2007


Author: toad
Date: 2007-08-11 15:34:20 +0000 (Sat, 11 Aug 2007)
New Revision: 14605

Modified:
   trunk/freenet/src/freenet/client/async/SingleFileInserter.java
   trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
   trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java
   trunk/freenet/src/freenet/io/NetworkInterface.java
   trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
   trunk/freenet/src/freenet/node/CHKInsertSender.java
   trunk/freenet/src/freenet/node/DarknetPeerNode.java
   trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
   trunk/freenet/src/freenet/node/InsertHandler.java
   trunk/freenet/src/freenet/node/LocationManager.java
   trunk/freenet/src/freenet/node/LoggingConfigHandler.java
   trunk/freenet/src/freenet/node/NodeClientCore.java
   trunk/freenet/src/freenet/node/NodeDispatcher.java
   trunk/freenet/src/freenet/node/NodeIPDetector.java
   trunk/freenet/src/freenet/node/PacketSender.java
   trunk/freenet/src/freenet/node/RequestHandler.java
   trunk/freenet/src/freenet/node/RequestSender.java
   trunk/freenet/src/freenet/node/RequestStarter.java
   trunk/freenet/src/freenet/node/SSKInsertSender.java
   trunk/freenet/src/freenet/node/TestnetHandler.java
   trunk/freenet/src/freenet/node/TextModeClientInterface.java
   trunk/freenet/src/freenet/node/TextModeClientInterfaceServer.java
   trunk/freenet/src/freenet/node/fcp/FCPConnectionInputHandler.java
   trunk/freenet/src/freenet/node/fcp/FCPConnectionOutputHandler.java
   trunk/freenet/src/freenet/node/fcp/FCPServer.java
   trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
   trunk/freenet/src/freenet/support/PooledExecutor.java
Log:
Use Executor for more or less all threads other than really long lived ones, apart from a few rarely used threads where it'd be too hard to pass in the Executor

Modified: trunk/freenet/src/freenet/client/async/SingleFileInserter.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SingleFileInserter.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/client/async/SingleFileInserter.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -106,10 +106,7 @@
 		if(data.size() > COMPRESS_OFF_THREAD_LIMIT) {
 			// Run off thread
 			OffThreadCompressor otc = new OffThreadCompressor();
-			Thread t = new Thread(otc, "Compressor for "+this);
-			if(logMINOR) Logger.minor(this, "Compressing off-thread: "+t);
-			t.setDaemon(true);
-			t.start();
+			ctx.executor.execute(otc, "Compressor for "+this);
 		} else {
 			tryCompress();
 		}

Modified: trunk/freenet/src/freenet/client/async/SplitFileFetcher.java
===================================================================
--- trunk/freenet/src/freenet/client/async/SplitFileFetcher.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/client/async/SplitFileFetcher.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -279,13 +279,11 @@
 	}
 
 	public void scheduleOffThread() {
-		Thread t = new Thread(new Runnable() {
+		fetchContext.executor.execute(new Runnable() {
 			public void run() {
 				schedule();
 			}
 		}, "Splitfile scheduler thread for "+this);
-		t.setDaemon(true);
-		t.start();
 	}
 
 }

Modified: trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/clients/http/SimpleToadletServer.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -341,7 +341,7 @@
 		this.advancedModeEnabled = fproxyConfig.getBoolean("advancedModeEnabled");		
 		toadlets = new LinkedList();
 		
-		this.networkInterface = NetworkInterface.create(port, this.bindTo, fproxyConfig.getString("allowedHosts"));
+		this.networkInterface = NetworkInterface.create(port, this.bindTo, fproxyConfig.getString("allowedHosts"), core.getExecutor());
 		
 		if(!enabled) {
 			Logger.normal(core, "Not starting FProxy as it's disabled");
@@ -421,9 +421,7 @@
 		}
 
 		void start() {
-			Thread t = new Thread(this, "SimpleToadletServer$SocketHandler@"+hashCode());
-			t.setDaemon(true);
-			t.start();
+			core.getExecutor().execute(this, "SimpleToadletServer$SocketHandler@"+hashCode());
 		}
 		
 		public void run() {

Modified: trunk/freenet/src/freenet/io/NetworkInterface.java
===================================================================
--- trunk/freenet/src/freenet/io/NetworkInterface.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/io/NetworkInterface.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -29,6 +29,7 @@
 import java.util.StringTokenizer;
 
 import freenet.io.AddressIdentifier.AddressType;
+import freenet.support.Executor;
 import freenet.support.Logger;
 
 /**
@@ -60,9 +61,11 @@
 
 	/** The number of running acceptors. */
 	private int runningAcceptors = 0;
+	
+	private final Executor executor;
 
-	public static NetworkInterface create(int port, String bindTo, String allowedHosts) throws IOException {
-		NetworkInterface iface = new NetworkInterface(port, allowedHosts);
+	public static NetworkInterface create(int port, String bindTo, String allowedHosts, Executor executor) throws IOException {
+		NetworkInterface iface = new NetworkInterface(port, allowedHosts, executor);
 		try {
 			iface.setBindTo(bindTo);
 		} catch (IOException e) {
@@ -86,9 +89,10 @@
 	 * @param allowedHosts
 	 *            A comma-separated list of allowed addresses
 	 */
-	private NetworkInterface(int port, String allowedHosts) throws IOException {
+	private NetworkInterface(int port, String allowedHosts, Executor executor) throws IOException {
 		this.port = port;
 		this.allowedHosts = new AllowedHosts(allowedHosts);
+		this.executor = executor;
 	}
 
 	/**
@@ -128,19 +132,12 @@
 			acceptors.add(acceptor);
 		}
 		setSoTimeout(timeout);
-		List tempThreads = new ArrayList();
 		synchronized (syncObject) {
 			Iterator acceptors = this.acceptors.iterator();
 			while (acceptors.hasNext()) {
-				Thread t = new Thread((Acceptor) acceptors.next(), "Network Interface Acceptor");
-				t.setDaemon(true);
-				tempThreads.add(t);
+				executor.execute((Acceptor) acceptors.next(), "Network Interface Acceptor");
 			}
 		}
-		for (Iterator i = tempThreads.iterator(); i.hasNext();) {
-			((Thread) i.next()).start();
-			runningAcceptors++;
-		}
 	}
 
 	public void setAllowedHosts(String allowedHosts) {

Modified: trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java
===================================================================
--- trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/io/xfer/BlockTransmitter.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -33,6 +33,7 @@
 import freenet.node.PeerNode;
 import freenet.support.BitArray;
 import freenet.support.DoubleTokenBucket;
+import freenet.support.Executor;
 import freenet.support.Logger;
 import freenet.support.TimeUtil;
 import freenet.support.transport.ip.IPUtil;
@@ -45,17 +46,17 @@
 	public static final int SEND_TIMEOUT = 60000;
 	public static final int PING_EVERY = 8;
 	
-	MessageCore _usm;
-	PeerContext _destination;
-	boolean _sendComplete;
-	long _uid;
-	PartiallyReceivedBlock _prb;
-	LinkedList _unsent;
-	Thread _receiverThread, _senderThread;
-	BitArray _sentPackets;
+	final MessageCore _usm;
+	final PeerContext _destination;
+	private boolean _sendComplete;
+	final long _uid;
+	final PartiallyReceivedBlock _prb;
+	private LinkedList _unsent;
+	private Runnable _senderThread;
+	private BitArray _sentPackets;
 	boolean failedByOverload;
 	final PacketThrottle throttle;
-	long timeAllSent = -1;
+	private long timeAllSent = -1;
 	final DoubleTokenBucket _masterThrottle;
 	final ByteCounter _ctr;
 	final int PACKET_SIZE;
@@ -76,7 +77,7 @@
 			// Will throw on running
 		}
 		throttle = _destination.getThrottle();
-		_senderThread = new Thread("_senderThread for "+_uid+ " to "+_destination.getPeer()) {
+		_senderThread = new Runnable() {
 		
 			public void run() {
 				while (!_sendComplete) {
@@ -173,16 +174,13 @@
 				}
 			}
 		};
-		_senderThread.setDaemon(true);
 	}
 
 	public void sendAborted(int reason, String desc) throws NotConnectedException {
 		_usm.send(_destination, DMT.createSendAborted(_uid, reason, desc), _ctr);
 	}
 	
-	public boolean send() {
-		_receiverThread = Thread.currentThread();
-		
+	public boolean send(Executor executor) {
 		PartiallyReceivedBlock.PacketReceivedListener myListener;
 		
 		try {
@@ -207,7 +205,7 @@
 					}
 				});
 			}
-			_senderThread.start();
+			executor.execute(_senderThread, "BlockTransmitter sender for "+_uid);
 			
 			while (true) {
 				if (_prb.isAborted()) {
@@ -311,12 +309,10 @@
 	/**
 	 * Send the data, off-thread.
 	 */
-	public void sendAsync() {
-		Runnable r = new Runnable() {
-			public void run() { send(); } };
-		Thread t = new Thread(r, "BlockTransmitter:sendAsync() for "+this);
-		t.setDaemon(true);
-		t.start();
+	public void sendAsync(final Executor executor) {
+		executor.execute(new Runnable() {
+			public void run() { send(executor); } },
+			"BlockTransmitter:sendAsync() for "+this);
 	}
 
 	public void waitForComplete() {

Modified: trunk/freenet/src/freenet/node/CHKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/CHKInsertSender.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/CHKInsertSender.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -18,6 +18,7 @@
 import freenet.keys.CHKBlock;
 import freenet.keys.CHKVerifyException;
 import freenet.keys.NodeCHK;
+import freenet.support.Executor;
 import freenet.support.Logger;
 import freenet.support.OOMHandler;
 
@@ -27,15 +28,17 @@
 		
 		final AwaitingCompletion completion;
 		final BlockTransmitter bt;
+		final Executor executor;
 		
-		public Sender(AwaitingCompletion ac) {
+		public Sender(AwaitingCompletion ac, Executor executor) {
 			this.bt = ac.bt;
 			this.completion = ac;
+			this.executor = executor;
 		}
 		
 		public void run() {
 			try {
-				bt.send();
+				bt.send(executor);
 				if(bt.failedDueToOverload()) {
 					completion.completedTransfer(false);
 				} else {
@@ -75,10 +78,8 @@
 		}
 		
 		void start() {
-			Sender s = new Sender(this);
-            Thread senderThread = new Thread(s, "Sender for "+uid+" to "+pn.getPeer());
-            senderThread.setDaemon(true);
-            senderThread.start();
+			Sender s = new Sender(this, node.executor);
+			node.executor.execute(s, "Sender for "+uid+" to "+pn.getPeer());
 		}
 		
 		void completed(boolean timeout, boolean success) {
@@ -137,9 +138,7 @@
     }
 
 	void start() {
-        Thread t = new Thread(this, "CHKInsertSender for UID "+uid+" on "+node.getDarknetPortNumber()+" at "+System.currentTimeMillis());
-        t.setDaemon(true);
-        t.start();
+		node.executor.execute(this, "CHKInsertSender for UID "+uid+" on "+node.getDarknetPortNumber()+" at "+System.currentTimeMillis());
 	}
 
 	static boolean logMINOR;
@@ -633,9 +632,7 @@
 			else
 				return;
 		}
-		t = new Thread(cw, "Completion waiter for "+uid);
-		t.setDaemon(true);
-		t.start();
+		node.executor.execute(cw, "Completion waiter for "+uid);
 	}
 	
 	private class CompletionWaiter implements Runnable {

Modified: trunk/freenet/src/freenet/node/DarknetPeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/DarknetPeerNode.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/DarknetPeerNode.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -829,7 +829,7 @@
 			prb = new PartiallyReceivedBulk(node.usm, size, Node.PACKET_SIZE, data, false);
 			receiver = new BulkReceiver(prb, DarknetPeerNode.this, uid);
 			// FIXME make this persistent
-			Thread t = new Thread(new Runnable() {
+			node.executor.execute(new Runnable() {
 				public void run() {
 					if(logMINOR)
 						Logger.minor(this, "Received file");
@@ -852,9 +852,6 @@
 						Logger.minor(this, "Received file");
 				}
 			}, "Receiver for bulk transfer "+uid+":"+filename);
-			t.setDaemon(true);
-			t.start();
-			if(logMINOR) Logger.minor(this, "Receiving on "+t);
 			sendFileOfferAccepted(uid);
 		}
 
@@ -872,7 +869,7 @@
 			transmitter = new BulkTransmitter(prb, DarknetPeerNode.this, uid, node.outputThrottle);
 			if(logMINOR)
 				Logger.minor(this, "Sending "+uid);
-			Thread t = new Thread(new Runnable() {
+			node.executor.execute(new Runnable() {
 				public void run() {
 					if(logMINOR)
 						Logger.minor(this, "Sending file");
@@ -891,8 +888,6 @@
 				}
 
 			}, "Sender for bulk transfer "+uid+":"+filename);
-			t.setDaemon(true);
-			t.start();
 		}
 
 		public void reject() {

Modified: trunk/freenet/src/freenet/node/IPDetectorPluginManager.java
===================================================================
--- trunk/freenet/src/freenet/node/IPDetectorPluginManager.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/IPDetectorPluginManager.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -468,9 +468,7 @@
 		if(logMINOR) Logger.minor(this, "Detecting...");
 		synchronized(this) {
 			runner = new DetectorRunner();
-			Thread t = new Thread(runner);
-			t.setDaemon(true);
-			t.start();
+			node.executor.execute(runner, "Plugin detector runner");
 		}
 	}
 

Modified: trunk/freenet/src/freenet/node/InsertHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/InsertHandler.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/InsertHandler.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -147,9 +147,7 @@
         // Receive the data, off thread
         
         Runnable dataReceiver = new DataReceiver();
-        Thread t = new Thread(dataReceiver, "InsertHandler$DataReceiver for UID "+uid);
-        t.setDaemon(true);
-        t.start();
+        node.executor.execute(dataReceiver, "InsertHandler$DataReceiver for UID "+uid);
 
         if(htl == 0) {
             canCommit = true;

Modified: trunk/freenet/src/freenet/node/LocationManager.java
===================================================================
--- trunk/freenet/src/freenet/node/LocationManager.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/LocationManager.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -120,9 +120,7 @@
     public void startSender(Node n, SwapRequestInterval interval) {
         this.node = n;
         this.interval = interval;
-        Thread t = new Thread(sender, "SwapRequest sender");
-        t.setDaemon(true);
-        t.start();
+        n.executor.execute(sender, "SwapRequest sender");
     }
 
     /**
@@ -200,10 +198,8 @@
      * the wilderness.
      */
     private void startSwapRequest() {
-        Thread t = new Thread(new OutgoingSwapRequestHandler(),
+    	node.executor.execute(new OutgoingSwapRequestHandler(),
                 "Outgoing swap request handler for port "+node.getDarknetPortNumber());
-        t.setDaemon(true);
-        t.start();
     }
     
     /**
@@ -766,9 +762,7 @@
                 IncomingSwapRequestHandler isrh =
                     new IncomingSwapRequestHandler(m, pn, item);
                 if(logMINOR) Logger.minor(this, "Handling... "+uid);
-                Thread t = new Thread(isrh, "Incoming swap request handler for port "+node.getDarknetPortNumber());
-                t.setDaemon(true);
-                t.start();
+                node.executor.execute(isrh, "Incoming swap request handler for port "+node.getDarknetPortNumber());
                 return true;
             } catch (Error e) {
                 unlock();

Modified: trunk/freenet/src/freenet/node/LoggingConfigHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/LoggingConfigHandler.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/LoggingConfigHandler.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -298,9 +298,7 @@
 		}
 
 		void start() {
-			Thread t = new Thread(this, "Old log directory "+logDir+" deleter");
-			t.setDaemon(true);
-			t.start();
+			executor.execute(this, "Old log directory "+logDir+" deleter");
 		}
 		
 		public void run() {

Modified: trunk/freenet/src/freenet/node/NodeClientCore.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeClientCore.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/NodeClientCore.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -452,7 +452,7 @@
 		if(tmci != null)
 			tmci.start();
 		
-		Thread completer = new Thread(new Runnable() {
+		node.executor.execute(new Runnable() {
 			public void run() {
 				System.out.println("Resuming persistent requests");
 				Logger.normal(this, "Resuming persistent requests");
@@ -464,8 +464,6 @@
 				Logger.normal(this, "Completed startup: All persistent requests resumed or restarted");
 			}
 		}, "Startup completion thread");
-		completer.setDaemon(true);
-		completer.start();
 	}
 	
 	public ClientKeyBlock realGetKey(ClientKey key, boolean localOnly, boolean cache, boolean ignoreStore) throws LowLevelGetException {

Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -191,9 +191,7 @@
 		}
 		//if(!node.lockUID(id)) return false;
 		RequestHandler rh = new RequestHandler(m, id, node);
-		Thread t = new Thread(rh, "RequestHandler for UID "+id);
-		t.setDaemon(true);
-		t.start();
+		node.executor.execute(rh, "RequestHandler for UID "+id);
 		return true;
 	}
 
@@ -234,14 +232,10 @@
 		long now = System.currentTimeMillis();
 		if(m.getSpec().equals(DMT.FNPSSKInsertRequest)) {
 			SSKInsertHandler rh = new SSKInsertHandler(m, id, node, now);
-			Thread t = new Thread(rh, "InsertHandler for "+id+" on "+node.getDarknetPortNumber());
-			t.setDaemon(true);
-			t.start();
+			node.executor.execute(rh, "InsertHandler for "+id+" on "+node.getDarknetPortNumber());
 		} else {
 			InsertHandler rh = new InsertHandler(m, id, node, now);
-			Thread t = new Thread(rh, "InsertHandler for "+id+" on "+node.getDarknetPortNumber());
-			t.setDaemon(true);
-			t.start();
+			node.executor.execute(rh, "InsertHandler for "+id+" on "+node.getDarknetPortNumber());
 		}
 		if(logMINOR) Logger.minor(this, "Started InsertHandler for "+id);
 		return true;

Modified: trunk/freenet/src/freenet/node/NodeIPDetector.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeIPDetector.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/NodeIPDetector.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -389,9 +389,7 @@
 	/** Start all IP detection related processes */
 	public void start() {
 		ipDetectorManager.start();
-		Thread t = new Thread(ipDetector, "IP address re-detector");
-		t.setDaemon(true);
-		t.start();
+		node.executor.execute(ipDetector, "IP address re-detector");
 		redetectAddress();
 		// 60 second delay for inserting ARK to avoid reinserting more than necessary if we don't detect IP on startup.
 		node.getTicker().queueTimedJob(new FastRunnable() {

Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/PacketSender.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -358,9 +358,7 @@
         			}
         		} else {
         			try {
-						Thread t = new Thread(r, "Scheduled job: "+r);
-						t.setDaemon(true);
-						t.start();
+        				node.executor.execute(r, "Scheduled job: "+r);
 					} catch (OutOfMemoryError e) {
 						OOMHandler.handleOOM(e);
 						System.err.println("Will retry above failed operation...");

Modified: trunk/freenet/src/freenet/node/RequestHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestHandler.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/RequestHandler.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -145,7 +145,7 @@
             	BlockTransmitter bt =
             		new BlockTransmitter(node.usm, source, uid, prb, node.outputThrottle, this);
             	node.addTransferringRequestHandler(uid);
-            	if(bt.send()) {
+            	if(bt.send(node.executor)) {
             		status = RequestSender.SUCCESS; // for byte logging
             		if(source.isOpennet()) {
             			finishOpennetNoRelay();
@@ -184,7 +184,7 @@
             	BlockTransmitter bt =
             	    new BlockTransmitter(node.usm, source, uid, prb, node.outputThrottle, this);
             	node.addTransferringRequestHandler(uid);
-            	if(!bt.send()){
+            	if(!bt.send(node.executor)){
             		finalTransferFailed = true;
             	} else {
     				// Successful CHK transfer, maybe path fold

Modified: trunk/freenet/src/freenet/node/RequestSender.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestSender.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/RequestSender.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -113,9 +113,7 @@
     }
 
     public void start() {
-        Thread t = new Thread(this, "RequestSender for UID "+uid);
-        t.setDaemon(true);
-        t.start();
+    	node.executor.execute(this, "RequestSender for UID "+uid);
     }
     
     public void run() {

Modified: trunk/freenet/src/freenet/node/RequestStarter.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestStarter.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/RequestStarter.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -90,10 +90,8 @@
 				// Create a thread to handle starting the request, and the resulting feedback
 				while(true) {
 					try {
-						Thread t = new Thread(new SenderThread(req), "RequestStarter$SenderThread for "+req);
-						t.setDaemon(true);
-						t.start();
-						if(logMINOR) Logger.minor(this, "Started "+req+" on "+t);
+						core.getExecutor().execute(new SenderThread(req), "RequestStarter$SenderThread for "+req);
+						if(logMINOR) Logger.minor(this, "Started "+req);
 						break;
 					} catch (OutOfMemoryError e) {
 						OOMHandler.handleOOM(e);

Modified: trunk/freenet/src/freenet/node/SSKInsertSender.java
===================================================================
--- trunk/freenet/src/freenet/node/SSKInsertSender.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/SSKInsertSender.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -97,9 +97,7 @@
     }
 
     void start() {
-        Thread t = new Thread(this, "SSKInsertSender for UID "+uid+" on "+node.getDarknetPortNumber()+" at "+System.currentTimeMillis());
-        t.setDaemon(true);
-        t.start();
+    	node.executor.execute(this, "SSKInsertSender for UID "+uid+" on "+node.getDarknetPortNumber()+" at "+System.currentTimeMillis());
     }
     
 	public void run() {

Modified: trunk/freenet/src/freenet/node/TestnetHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/TestnetHandler.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/TestnetHandler.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -124,9 +124,7 @@
 		}
 
 		void start() {
-			Thread t = new Thread(this, "Testnet handler for "+s.getInetAddress()+" at "+System.currentTimeMillis());
-			t.setDaemon(true);
-			t.start();
+			node.executor.execute(this, "Testnet handler for "+s.getInetAddress()+" at "+System.currentTimeMillis());
 		}
 		
 		public void run() {

Modified: trunk/freenet/src/freenet/node/TextModeClientInterface.java
===================================================================
--- trunk/freenet/src/freenet/node/TextModeClientInterface.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/TextModeClientInterface.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -908,9 +908,7 @@
 
     private void probeAll() {
     	GlobalProbe p = new GlobalProbe(n);
-    	Thread t = new Thread(p);
-    	t.setDaemon(true);
-    	t.start();
+    	n.executor.execute(p, "GlobalProbe");
 	}
 
 	/**

Modified: trunk/freenet/src/freenet/node/TextModeClientInterfaceServer.java
===================================================================
--- trunk/freenet/src/freenet/node/TextModeClientInterfaceServer.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/TextModeClientInterfaceServer.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -47,15 +47,14 @@
         this.bindTo=bindTo;
         this.allowedHosts = allowedHosts;
         this.isEnabled=true;
-		networkInterface = NetworkInterface.create(port, bindTo, allowedHosts);
+		networkInterface = NetworkInterface.create(port, bindTo, allowedHosts, n.executor);
     }
     
     void start() {
 		Logger.normal(core, "TMCI started on "+networkInterface.getAllowedHosts()+ ':' +port);
 		System.out.println("TMCI started on "+networkInterface.getAllowedHosts()+ ':' +port);
-        Thread t = new Thread(this, "Text mode client interface");
-        t.setDaemon(true);
-        t.start();
+		
+		n.executor.execute(this, "Text mode client interface");
     }
     
 	public static TextModeClientInterfaceServer maybeCreate(Node node, NodeClientCore core, Config config) throws IOException {
@@ -232,9 +231,7 @@
     				TextModeClientInterface tmci = 
 					new TextModeClientInterface(this, in, out);
     				
-    				Thread t = new Thread(tmci, "Text mode client interface handler for "+s.getPort());
-    				t.setDaemon(true);
-    				t.start();
+    				n.executor.execute(tmci, "Text mode client interface handler for "+s.getPort());
     				
     			} catch (SocketTimeoutException e) {
     				// Ignore and try again

Modified: trunk/freenet/src/freenet/node/fcp/FCPConnectionInputHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPConnectionInputHandler.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/fcp/FCPConnectionInputHandler.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -22,9 +22,7 @@
 	}
 
 	void start() {
-		Thread t = new Thread(this, "FCP input handler for "+handler.sock.getRemoteSocketAddress());
-		t.setDaemon(true);
-		t.start();
+		handler.server.node.executor.execute(this, "FCP input handler for "+handler.sock.getRemoteSocketAddress());
 	}
 	
 	public void run() {

Modified: trunk/freenet/src/freenet/node/fcp/FCPConnectionOutputHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPConnectionOutputHandler.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/fcp/FCPConnectionOutputHandler.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -21,9 +21,7 @@
 	}
 
 	void start() {
-		Thread t = new Thread(this, "FCP output handler for "+handler.sock.getRemoteSocketAddress()+ ':' +handler.sock.getPort());
-		t.setDaemon(true);
-		t.start();
+		handler.server.node.executor.execute(this, "FCP output handler for "+handler.sock.getRemoteSocketAddress()+ ':' +handler.sock.getPort());
 	}
 	
 	public void run() {

Modified: trunk/freenet/src/freenet/node/fcp/FCPServer.java
===================================================================
--- trunk/freenet/src/freenet/node/fcp/FCPServer.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/fcp/FCPServer.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -117,7 +117,7 @@
 		
 		NetworkInterface tempNetworkInterface = null;
 		try {
-			tempNetworkInterface = NetworkInterface.create(port, bindTo, allowedHosts);
+			tempNetworkInterface = NetworkInterface.create(port, bindTo, allowedHosts, node.executor);
 		} catch (BindException be) {
 			Logger.error(this, "Couldn't bind to FCP Port "+bindTo+ ':' +port+". FCP Server not started.");
 			System.out.println("Couldn't bind to FCP Port "+bindTo+ ':' +port+". FCP Server not started.");

Modified: trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java
===================================================================
--- trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/node/updater/UpdateOverMandatoryManager.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -530,9 +530,7 @@
 					if(logMINOR)
 						Logger.minor(this, "Sending data...");
 					// Send the data
-					Thread t = new Thread(r, "Revocation key send for "+uid+" to "+source.userToString());
-					t.setDaemon(true);
-					t.start();
+					updateManager.node.executor.execute(r, "Revocation key send for "+uid+" to "+source.userToString());
 				}
 				public void disconnected() {
 					// Argh
@@ -639,7 +637,7 @@
 		
 		final BulkReceiver br = new BulkReceiver(prb, source, uid);
 		
-		Thread t = new Thread(new Runnable() {
+		updateManager.node.executor.execute(new Runnable() {
 
 			public void run() {
 				if(br.receive()) {
@@ -656,9 +654,6 @@
 			
 		}, "Revocation key receive for "+uid+" from "+source.userToString());
 		
-		t.setDaemon(true);
-		t.start();
-		
 		return true;
 	}
 
@@ -908,9 +903,8 @@
 					if(logMINOR)
 						Logger.minor(this, "Sending data...");
 					// Send the data
-					Thread t = new Thread(r, "Main jar send for "+uid+" to "+source.userToString());
-					t.setDaemon(true);
-					t.start();
+					
+					updateManager.node.executor.execute(r, "Main jar send for "+uid+" to "+source.userToString());
 				}
 				public void disconnected() {
 					// Argh
@@ -1025,7 +1019,7 @@
 		
 		final BulkReceiver br = new BulkReceiver(prb, source, uid);
 		
-		Thread t = new Thread(new Runnable() {
+		updateManager.node.executor.execute(new Runnable() {
 
 			public void run() {
 				try {
@@ -1049,9 +1043,6 @@
 			
 		}, "Main jar ("+version+") receive for "+uid+" from "+source.userToString());
 		
-		t.setDaemon(true);
-		t.start();
-		
 		return true;
 	}
 

Modified: trunk/freenet/src/freenet/support/PooledExecutor.java
===================================================================
--- trunk/freenet/src/freenet/support/PooledExecutor.java	2007-08-11 14:32:37 UTC (rev 14604)
+++ trunk/freenet/src/freenet/support/PooledExecutor.java	2007-08-11 15:34:20 UTC (rev 14605)
@@ -52,11 +52,13 @@
 
 	class MyThread extends Thread {
 		
+		final String defaultName;
 		boolean alive = true;
 		Runnable nextJob;
 		
-		public MyThread(String string) {
-			super(string);
+		public MyThread(String defaultName) {
+			super(defaultName);
+			this.defaultName = defaultName;
 		}
 
 		public void run() {
@@ -74,6 +76,7 @@
 					}
 					synchronized(this) {
 						if(nextJob == null) {
+							this.setName(defaultName);
 							try {
 								wait(TIMEOUT);
 							} catch (InterruptedException e) {




More information about the cvs mailing list