INNER CODE UNIT · Java
CallbackInvokeHandler
RuedigerMoeller/kontraktor · attic/ElasticScheduler.java:244
class CallbackInvokeHandler implements InvocationHandler {
final Object target;
final Actor targetActor;
public CallbackInvokeHandler(Object target, Actor act) {
this.target = target;
this.targetActor = act;
}
@Override
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
if ( method.getDeclaringClass() == Object.class )
return method.invoke(proxy,args); // toString, hashCode etc. invoke sync (DANGER if hashcode accesses mutable local state)
if ( target != null ) {
CallEntry ce = new CallEntry(target,method,args, Actor.sender.get(), targetActor, true);
put2QueuePolling(targetActor.__cbQueue, true, ce, targetActor);
}