Author: nextgens
Date: 2006-07-02 20:48:39 +0000 (Sun, 02 Jul 2006)
New Revision: 9433
Modified:
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/NodeStarter.java
Log:
More workarounds regarding the NPTL issue
* Daemonize the memoryChecker
* Don't start NodePinger from the constructor
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2006-07-02 19:41:19 UTC (rev
9432)
+++ trunk/freenet/src/freenet/node/Node.java 2006-07-02 20:48:39 UTC (rev
9433)
@@ -474,6 +474,8 @@
private DSAPrivateKey myPrivKey;
/** My public key */
private DSAPublicKey myPubKey;
+ /** Memory Checker thread */
+ private final Thread myMemoryChecker;
/** My ARK SSK private key */
private InsertableClientSSK myARK;
/** My ARK sequence number */
@@ -981,12 +983,15 @@
primaryIPUndetectedAlert = new IPUndetectedUserAlert();
+ //Memory Checking thread
+ this.myMemoryChecker = new Thread(new MemoryChecker(), "Memory
checker");
+ this.myMemoryChecker.setPriority(Thread.MAX_PRIORITY);
+ this.myMemoryChecker.setDaemon(true);
+
// Setup node-specific configuration
-
SubConfig nodeConfig = new SubConfig("node", config);
// IP address override
-
int sortOrder = 0;
nodeConfig.register("ipAddressOverride", "", sortOrder++, true,
"IP address override", "IP address override (not usually needed)", new
StringCallback() {
@@ -1267,7 +1272,6 @@
peers.writePeers();
peers.updatePMUserAlert();
nodePinger = new NodePinger(this);
- nodePinger.start();
usm.setDispatcher(dispatcher=new NodeDispatcher(this));
usm.setLowLevelFilter(packetMangler = new
FNPPacketMangler(this));
@@ -1514,9 +1518,11 @@
void start(boolean noSwaps) throws NodeInitException {
if(!noSwaps)
lm.startSender(this, this.swapInterval);
+ nodePinger.start();
dnsr.start();
ps.start();
usm.start();
+ myMemoryChecker.start();
if(isUsingWrapper()) {
Logger.normal(this, "Using wrapper correctly:
"+nodeStarter);
Modified: trunk/freenet/src/freenet/node/NodeStarter.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeStarter.java 2006-07-02 19:41:19 UTC
(rev 9432)
+++ trunk/freenet/src/freenet/node/NodeStarter.java 2006-07-02 20:48:39 UTC
(rev 9433)
@@ -32,9 +32,7 @@
/*---------------------------------------------------------------
* Constructors
*-------------------------------------------------------------*/
- private NodeStarter()
- {
- }
+ private NodeStarter(){}
public NodeStarter get(){
return this;
@@ -83,7 +81,6 @@
}
// First, set up logging. It is global, and may be shared between
several nodes.
-
SubConfig loggingConfig = new SubConfig("logger", cfg);
try {
@@ -95,16 +92,9 @@
}
// Setup RNG
-
RandomSource random = new Yarrow();
DiffieHellman.init(random);
-
- // FIXME : maybe we should keep it even if the wrapper does it
-
- Thread t = new Thread(new MemoryChecker(), "Memory checker");
- t.setPriority(Thread.MAX_PRIORITY);
- t.start();
// Thread to keep the node up.
// JVM deadlocks losing a lock when two threads of different
types (daemon|app)