2009-04-06 sponge

SimpleScheduler SimpleTimer2 debugging added.
Fix build files for desktopgui.
This commit is contained in:
sponge
2009-04-06 22:40:22 +00:00
parent 495558a949
commit 37667247c3
8 changed files with 47 additions and 15 deletions

View File

@@ -1,7 +1,6 @@
package net.i2p.util;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.ThreadFactory;
@@ -91,6 +90,10 @@ public class SimpleScheduler {
public Thread newThread(Runnable r) {
Thread rv = Executors.defaultThreadFactory().newThread(r);
rv.setName(_name + ' ' + (++_count) + '/' + THREADS);
String name = rv.getThreadGroup().getName();
if(!(name.isEmpty() || name.equals("Main") || name.equals("main"))) {
(new Exception("OWCH! DAMN! Wrong ThreadGroup `" + name +"', `" + rv.getName() + "'")).printStackTrace();
}
rv.setDaemon(true);
return rv;
}
@@ -144,9 +147,11 @@ public class SimpleScheduler {
_timeoutMs = timeoutMs;
_scheduled = initialDelay + System.currentTimeMillis();
}
@Override
public void schedule() {
_executor.scheduleWithFixedDelay(this, _initialDelay, _timeoutMs, TimeUnit.MILLISECONDS);
}
@Override
public void run() {
super.run();
_scheduled = _timeoutMs + System.currentTimeMillis();

View File

@@ -5,7 +5,6 @@ import java.util.concurrent.ScheduledFuture;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.ThreadFactory;
import java.util.Map;
import net.i2p.I2PAppContext;
@@ -56,6 +55,7 @@ public class SimpleTimer2 {
super(threads, factory);
}
@Override
protected void afterExecute(Runnable r, Throwable t) {
super.afterExecute(r, t);
if (t != null) // shoudn't happen, caught in RunnableEvent.run()
@@ -67,6 +67,10 @@ public class SimpleTimer2 {
public Thread newThread(Runnable r) {
Thread rv = Executors.defaultThreadFactory().newThread(r);
rv.setName(_name + ' ' + (++_count) + '/' + THREADS);
String name = rv.getThreadGroup().getName();
if(!(name.isEmpty() || name.equals("Main") || name.equals("main"))) {
(new Exception("OWCH! DAMN! Wrong ThreadGroup `" + name +"', `" + rv.getName() + "'")).printStackTrace();
}
rv.setDaemon(true);
return rv;
}
@@ -232,6 +236,7 @@ public class SimpleTimer2 {
public abstract void timeReached();
}
@Override
public String toString() {
return _name;
}