Author: toad
Date: 2007-02-16 01:55:37 +0000 (Fri, 16 Feb 2007)
New Revision: 11806

Modified:
   trunk/freenet/src/freenet/io/comm/UdpSocketManager.java
   trunk/freenet/src/freenet/node/Node.java
   trunk/freenet/src/freenet/node/PacketSender.java
Log:
Add node.disableHangCheckers.

Modified: trunk/freenet/src/freenet/io/comm/UdpSocketManager.java
===================================================================
--- trunk/freenet/src/freenet/io/comm/UdpSocketManager.java     2007-02-15 
23:06:25 UTC (rev 11805)
+++ trunk/freenet/src/freenet/io/comm/UdpSocketManager.java     2007-02-16 
01:55:37 UTC (rev 11806)
@@ -60,14 +60,20 @@
        private final Node node;

        public void start() {
+               start(false);
+       }
+       
+       public void start(boolean disableHangChecker) {
                lastTimeInSeconds = (int) (System.currentTimeMillis() / 1000);
                setDaemon(true);
                setPriority(Thread.MAX_PRIORITY);
                super.start();
-               Thread checker = new Thread(new USMChecker(), 
"UdpSocketManager$USMChecker");
-               checker.setDaemon(true);
-               checker.setPriority(Thread.MAX_PRIORITY);
-               checker.start();
+               if(!disableHangChecker) {
+                       Thread checker = new Thread(new USMChecker(), 
"UdpSocketManager$USMChecker");
+                       checker.setDaemon(true);
+                       checker.setPriority(Thread.MAX_PRIORITY);
+                       checker.start();
+               }
        }

        public class USMChecker implements Runnable {

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2007-02-15 23:06:25 UTC (rev 
11805)
+++ trunk/freenet/src/freenet/node/Node.java    2007-02-16 01:55:37 UTC (rev 
11806)
@@ -359,6 +359,8 @@
         * probabilistic decrement at the edges of the HTLs.
         */
        boolean disableProbabilisticHTLs;
+       /** If true, disable all hang-check functionality */
+       public boolean disableHangCheckers;

        private final HashSet runningUIDs;

@@ -1389,6 +1391,20 @@

                clientCore = new NodeClientCore(this, config, nodeConfig, 
nodeDir, portNumber, sortOrder, throttleFS == null ? null : 
throttleFS.subset("RequestStarters"));

+               nodeConfig.register("disableHangCheckers", false, sortOrder++, 
true, false, "Disable all hang checkers", "Disable all hang checkers/watchdog 
functions. Set this if you are profiling Fred.", new BooleanCallback() {
+
+                       public boolean get() {
+                               return disableHangCheckers;
+                       }
+
+                       public void set(boolean val) throws 
InvalidConfigValueException {
+                               disableHangCheckers = val;
+                       }
+                       
+               });
+               
+               disableHangCheckers = 
nodeConfig.getBoolean("disableHangCheckers");
+               
                nodeConfig.finishedInitialization();
                writeNodeFile();

@@ -1471,7 +1487,7 @@
                nodePinger.start();
                dnsr.start();
                ps.start();
-               usm.start();
+               usm.start(disableHangCheckers);
                myMemoryChecker.start();
                peers.start();


Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java    2007-02-15 23:06:25 UTC 
(rev 11805)
+++ trunk/freenet/src/freenet/node/PacketSender.java    2007-02-16 01:55:37 UTC 
(rev 11806)
@@ -127,11 +127,13 @@
                }, transition - now);
        }
         lastTimeInSeconds = (int) (now / 1000);
-        // Necessary because of sun JVM bugs when NPTL is enabled. Write once, 
debug everywhere!
-        Thread t1 = new Thread(new Watchdog(), "PacketSender watchdog");
-        t1.setDaemon(true);
-        t1.start();
-        myThread.start();
+        if(!node.disableHangCheckers) {
+               // Necessary because of sun JVM bugs when NPTL is enabled. 
Write once, debug everywhere!
+               Thread t1 = new Thread(new Watchdog(), "PacketSender watchdog");
+               t1.setDaemon(true);
+               t1.start();
+               myThread.start();
+        }
     }

     public void run() {


Reply via email to