private void execDelayedProcedure(DelayedProcedure<TEnvironment> delayed) { // TODO: treat this as a normal procedure, add it to the scheduler and // let one of the workers handle it. // Today we consider ProcedureInMemoryChore as InlineChores Procedure<TEnvironment> procedure = delayed.getObject(); if (procedure instanceof ProcedureInMemoryChore) { executeInMemoryChore((ProcedureInMemoryChore<TEnvironment>) procedure); // if the procedure is in a waiting state again, put it back in the queue procedure.updateTimestamp(); if (procedure.isWaiting()) { delayed.setTimeout(procedure.getTimeoutTimestamp()); queue.add(delayed); } } else { executeTimedoutProcedure(procedure); } }
private void execDelayedProcedure(DelayedProcedure delayed) { // TODO: treat this as a normal procedure, add it to the scheduler and // let one of the workers handle it. // Today we consider ProcedureInMemoryChore as InlineChores Procedure<?> procedure = delayed.getObject(); if (procedure instanceof ProcedureInMemoryChore) { executeInMemoryChore((ProcedureInMemoryChore) procedure); // if the procedure is in a waiting state again, put it back in the queue procedure.updateTimestamp(); if (procedure.isWaiting()) { delayed.setTimeout(procedure.getTimeoutTimestamp()); queue.add(delayed); } } else { executeTimedoutProcedure(procedure); } }
private void execDelayedProcedure(DelayedProcedure<TEnvironment> delayed) { // TODO: treat this as a normal procedure, add it to the scheduler and // let one of the workers handle it. // Today we consider ProcedureInMemoryChore as InlineChores Procedure<TEnvironment> procedure = delayed.getObject(); if (procedure instanceof ProcedureInMemoryChore) { executeInMemoryChore((ProcedureInMemoryChore<TEnvironment>) procedure); // if the procedure is in a waiting state again, put it back in the queue procedure.updateTimestamp(); if (procedure.isWaiting()) { delayed.setTimeout(procedure.getTimeoutTimestamp()); queue.add(delayed); } } else { executeTimedoutProcedure(procedure); } }