private IEnumerable <Expression> __concurrentthink(CancellationToken __cancellation, Action <object> __success, Action <Exception> __failure) { Console.WriteLine(_name + " is thinking"); var __expr2_var = new __expr2 { Start = (___expr) => { var __expr = (__expr2)___expr; Task.Delay((int)((rand(1.0, 2.0)) * 1000)).ContinueWith(__task => { __enter(() => __expr.__op2(true, null, null), (__ex) => __expr.__op2(false, null, __ex)); } ); } , End = (__expr) => { __enter(() => __advance(__expr.Continuator), __failure); } , __start1 = (___expr) => { var __expr = (__expr2)___expr; __enter(() => { __advance((__concurrenthungry(__cancellation, (__res) => { __expr.__op2(null, true, null); } , (__ex) => { __expr.__op2(null, false, __ex); } )).GetEnumerator()); } , __failure); } }; yield return(__expr2_var); if (__expr2_var.Failure != null) { throw __expr2_var.Failure; } { __dispatch("think"); if (__success != null) { __success(null); } yield break; } }
private IEnumerable <Expression> __concurrentFinished(CancellationToken __cancellation, Action <object> __success, Action <Exception> __failure) { { var __expr2_var = new __expr2 { Start = (___expr) => { var __expr = (__expr2)___expr; __listen("done", () => { __expr.__op2(true, null, null); } ); __expr.__op2(null, false, null); } , End = (__expr) => { __enter(() => __advance(__expr.Continuator), __failure); } }; yield return(__expr2_var); if (__expr2_var.Failure != null) { throw __expr2_var.Failure; } } { __dispatch("Finished"); if (__success != null) { __success(null); } yield break; } }
private IEnumerable <Expression> __concurrentvisit(int client, CancellationToken __cancellation, Action <object> __success, Action <Exception> __failure) { if (_chairs == 0) { Console.WriteLine($"Client {client}: the place is full!"); } else { Console.WriteLine($"Client: {client}, Barber1 {barber_status(0)}, Barber2: {barber_status(1)}"); if (_busy[0] && _busy[1]) { _chairs--; { var __expr2_var = new __expr2 { Start = (___expr) => { var __expr = (__expr2)___expr; __queuevisit.Enqueue(() => __expr.__op2(true, null, null)); __expr.__op2(null, false, null); } , End = (__expr) => { __enter(() => __advance(__expr.Continuator), __failure); } }; yield return(__expr2_var); if (__expr2_var.Failure != null) { throw __expr2_var.Failure; } } _chairs++; } for (int i = 0; i < 2; i++) { if (!_busy[i]) { { var __expr3_var = new __expr3 { Start = (___expr) => { var __expr = (__expr3)___expr; __advance((__concurrentshave_client(client, i, __cancellation, (__res) => { __expr.__op3(true, null, null); } , (__ex) => { __expr.__op3(false, null, __ex); } )).GetEnumerator()); __expr.__op3(null, false, null); } , End = (__expr) => { __enter(() => __advance(__expr.Continuator), __failure); } }; yield return(__expr3_var); if (__expr3_var.Failure != null) { throw __expr3_var.Failure; } } break; } } if (__queuevisit.Any()) { __queuevisit.Dequeue()(); } } _clients--; if (_clients == 0) { App.Stop(); } { __dispatch("visit"); if (__success != null) { __success(null); } yield break; } }
private IEnumerable <Expression> __concurrentvacation(CancellationToken __cancellation, Action <object> __success, Action <Exception> __failure) { var __expr2_var = new __expr2 { Start = (___expr) => { var __expr = (__expr2)___expr; Task.Delay((int)((rand(3, 7)) * 1000)).ContinueWith(__task => { __enter(() => __expr.__op3(true, null, null), (__ex) => __expr.__op3(false, null, __ex)); } ); } , End = (__expr) => { __enter(() => __advance(__expr.Continuator), __failure); } , __start1 = (___expr) => { var __expr = (__expr2)___expr; __enter(() => { _santa.reindeer(this, __cancellation, (__res) => __expr.__op4(true, null, null), (__ex) => __expr.__op4(false, null, __ex)); __listen("unharness", () => { __expr.__op4(null, true, null); } ); } , __failure); } , __start2 = (___expr) => { var __expr = (__expr2)___expr; __enter(() => { try { Console.WriteLine(_name + ": back from vacation"); __expr.__op3(null, true, null); } catch (Exception __ex) { __expr.__op3(null, false, __ex); } } , __failure); } }; yield return(__expr2_var); if (__expr2_var.Failure != null) { throw __expr2_var.Failure; } { __dispatch("vacation"); if (__success != null) { __success(null); } yield break; } }
private IEnumerable <Runtime.Expression> __concurrentmain(Action <object> __success, Action <Exception> __failure) { var __expr1_var = new __expr1 { Start = (___expr) => { var __expr = (__expr1)___expr; __run(() => { __listen("A", () => { __expr.__op1(true, null, null); } ); __expr.__op1(null, false, null); } , null, __failure); } , End = (__expr) => { __run(() => __advance(__expr.Continuator), __success, __failure); } }; yield return(__expr1_var); if (__expr1_var.Failure != null) { throw __expr1_var.Failure; } int val; var __expr2_var = new __expr2 { Start = (___expr) => { var __expr = (__expr2)___expr; __run(() => { __concurrentC((__res) => { __expr.val = (Int32)__res; __expr.__op2(true, null, null); } , (__ex) => { __expr.__op2(false, null, __ex); } ); __expr.__op2(null, false, null); } , null, __failure); } , End = (__expr) => { __run(() => __advance(__expr.Continuator), __success, __failure); } }; yield return(__expr2_var); if (__expr2_var.Failure != null) { throw __expr2_var.Failure; } val = __expr2_var.val; val++; { if (__success != null) { try { __success(null); } catch { } } yield break; } }