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) {


Reply via email to