Exemplo n.º 1
0
 public override void Process(IMonadSink monad)
 {
     parent = monad;
     //TODO: not thread safe, not even reenterable
     foreach (var c in childs) {
         c.Process(this);
     }
 }
 public override void Dispose()
 {
     var parent = this.parent;
     this.parent = null;
     if (parent == null) {
         return;
     }
     try {
         cts.Cancel();
     } catch {
         //swallow error;
     }
     cts = null;
 }
 public void Continuation(Task task)
 {
     var parent = this.parent;
     this.parent = null;
     if(parent == null) {
         return;
     }
     if (task.Status != TaskStatus.RanToCompletion) {
         parent.Fail(task.Exception);
         parent.Dispose();
         return;
     }
     parent.Succeed();
     parent.Dispose();
 }
 public override void Process(IMonadSink monad)
 {
     this.parent = monad;
     fact(cts.Token).ContinueWith(Continuation);
 }
Exemplo n.º 5
0
 public override void Process(IMonadSink monad)
 {
     this.parent = monad;
     task.ContinueWith(Continuation);
 }