INNER CODE UNIT · Java
inThread
RuedigerMoeller/kontraktor · attic/ElasticScheduler.java:280
public <T> T inThread(Actor actor, T callback) {
Class<?>[] interfaces = callback.getClass().getInterfaces();
InvocationHandler invoker = actor.__scheduler.getInvoker(actor, callback);
if ( invoker == null ) // called from outside actor world
{
return callback; // callback in callee thread
}
return (T) Proxy.newProxyInstance(callback.getClass().getClassLoader(), interfaces, invoker);
}
@Override
public void delayedCall(long millis, final Runnable toRun) {
Actors.delayedCalls.schedule(new TimerTask() {
@Override
public void run() {
toRun.run();
}
}, millis);