From 57bfefd4a328a22a39632e7bb18842258509910f Mon Sep 17 00:00:00 2001 From: Artyom Date: Thu, 1 Oct 2020 18:04:23 +0300 Subject: [PATCH] Correct the scheduler --- ReactiveExample/TerminalScheduler.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/ReactiveExample/TerminalScheduler.cs b/ReactiveExample/TerminalScheduler.cs index 4c4ec85b4..afa0d0208 100644 --- a/ReactiveExample/TerminalScheduler.cs +++ b/ReactiveExample/TerminalScheduler.cs @@ -23,19 +23,22 @@ namespace ReactiveExample { return composite; } - IDisposable PostAsTimeout () { - var composite = new CompositeDisposable(2); - var token = Application.MainLoop.AddTimeout (dueTime, args => { + IDisposable PostOnMainLoopAsTimeout () { + object timeout = null; + var composite = new CompositeDisposable (2) { + Disposable.Create (() => Application.MainLoop.RemoveTimeout (timeout)) + }; + timeout = Application.MainLoop.AddTimeout (dueTime, args => { composite.Add(action (this, state)); + Application.MainLoop.RemoveTimeout (timeout); return true; }); - composite.Add (Disposable.Create (() => Application.MainLoop.RemoveTimeout (token))); return composite; } return dueTime == TimeSpan.Zero ? PostOnMainLoop () - : PostAsTimeout (); + : PostOnMainLoopAsTimeout (); } } } \ No newline at end of file