public Task <bool> WaitAsync(params Tuple <IJob, int>[] states) { WaitRequest wr = new WaitRequest(states.Select(s => new Tuple <int, int>(s.Item1.ID, s.Item2))); manager.waitRequested.OnNext(new Tuple <NodeJob, WaitRequest>(this, wr)); return(wr.WaitTask); }
public Task <bool> WaitAsync(IJob job, int status) { var wr = new WaitRequest(new Tuple <int, int>[1] { new Tuple <int, int>(job.ID, status) }); externalWaitRequested.OnNext(wr); return(wr.WaitTask); }
private void OnExternalWaitRequested(WaitRequest wr) { wr.CheckStatus(database); if (wr.IsComplete) { wr.Unblock(); } else { extWaitings.Add(wr); } }