public bool Evaluate(ReceiverTask receiver, ref ITask deferredTask)
{
lock (_lock) {
if (done) {
deferredTask = null;
return false;
} else {
state = ArbiterTaskState.Done;
deferredTask = new Task<ITask> (deferredTask, this.Finish);
done = true;
return true;
}
}
}