public OtpActorSchedTask(OtpActor actor) { actor.Task = this; this.actor = actor; this.enumerator = actor.GetEnumerator(); }
public void react(OtpActor actor) { sched.react(actor); }
public void react(OtpActor actor) { OtpActorSchedTask task = new OtpActorSchedTask(actor); IEnumerator<OtpActor.Continuation> enumerator = task.Enumerator; if (!enumerator.MoveNext()) { task.Active = false; } else { Monitor.Enter(runnable); try { task.Active = true; runnable.Enqueue(task); if (runnable.Count == 1) { Monitor.Pulse(runnable); } } finally { Monitor.Exit(runnable); } } }