forked from I2P_Developers/i2p.i2p
Transport: Raise bandwidth refiller thread priority
so I/O doesn't stall under high CPU load - Raise DH generator thread priority to keep DH building out of event pumper thread - Raise PRNG and YK generator thread priorites one notch - Set I2PThread priority in constructor Fixes problems mainly seen on Windows, which seems to be much more sensitive to priority settings
This commit is contained in:
@ -56,7 +56,7 @@ public class AsyncFortunaStandalone extends FortunaStandalone implements Runnabl
|
||||
_isRunning = true;
|
||||
_refillThread = new I2PThread(this, "PRNG");
|
||||
_refillThread.setDaemon(true);
|
||||
_refillThread.setPriority(Thread.MIN_PRIORITY+1);
|
||||
_refillThread.setPriority(Thread.NORM_PRIORITY - 2);
|
||||
_refillThread.start();
|
||||
}
|
||||
|
||||
|
@ -91,7 +91,7 @@ class YKGenerator {
|
||||
return;
|
||||
_precalcThread = new I2PThread(new YKPrecalcRunner(MIN_NUM_BUILDERS, MAX_NUM_BUILDERS),
|
||||
"YK Precalc", true);
|
||||
_precalcThread.setPriority(Thread.MIN_PRIORITY);
|
||||
_precalcThread.setPriority(Thread.NORM_PRIORITY - 2);
|
||||
_isRunning = true;
|
||||
_precalcThread.start();
|
||||
}
|
||||
|
@ -17,6 +17,8 @@ import java.util.concurrent.CopyOnWriteArraySet;
|
||||
* In case its useful later...
|
||||
* (e.g. w/ native programatic thread dumping, etc)
|
||||
*
|
||||
* As of 0.9.21, I2PThreads are initialized to NORM_PRIORITY
|
||||
* (not the priority of the creating thread).
|
||||
*/
|
||||
public class I2PThread extends Thread {
|
||||
/**
|
||||
@ -31,36 +33,42 @@ public class I2PThread extends Thread {
|
||||
|
||||
public I2PThread() {
|
||||
super();
|
||||
setPriority(NORM_PRIORITY);
|
||||
//if ( (_log == null) || (_log.shouldLog(Log.DEBUG)) )
|
||||
// _createdBy = new Exception("Created by");
|
||||
}
|
||||
|
||||
public I2PThread(String name) {
|
||||
super(name);
|
||||
setPriority(NORM_PRIORITY);
|
||||
//if ( (_log == null) || (_log.shouldLog(Log.DEBUG)) )
|
||||
// _createdBy = new Exception("Created by");
|
||||
}
|
||||
|
||||
public I2PThread(Runnable r) {
|
||||
super(r);
|
||||
setPriority(NORM_PRIORITY);
|
||||
//if ( (_log == null) || (_log.shouldLog(Log.DEBUG)) )
|
||||
// _createdBy = new Exception("Created by");
|
||||
}
|
||||
|
||||
public I2PThread(Runnable r, String name) {
|
||||
super(r, name);
|
||||
setPriority(NORM_PRIORITY);
|
||||
//if ( (_log == null) || (_log.shouldLog(Log.DEBUG)) )
|
||||
// _createdBy = new Exception("Created by");
|
||||
}
|
||||
public I2PThread(Runnable r, String name, boolean isDaemon) {
|
||||
super(r, name);
|
||||
setDaemon(isDaemon);
|
||||
setPriority(NORM_PRIORITY);
|
||||
//if ( (_log == null) || (_log.shouldLog(Log.DEBUG)) )
|
||||
// _createdBy = new Exception("Created by");
|
||||
}
|
||||
|
||||
public I2PThread(ThreadGroup g, Runnable r) {
|
||||
super(g, r);
|
||||
setPriority(NORM_PRIORITY);
|
||||
//if ( (_log == null) || (_log.shouldLog(Log.DEBUG)) )
|
||||
// _createdBy = new Exception("Created by");
|
||||
}
|
||||
|
Reference in New Issue
Block a user