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