From 611279999c4cdb68bacab7174d9c0a3f19c58ca9 Mon Sep 17 00:00:00 2001 From: Juraj Kirchheim Date: Wed, 13 Sep 2023 15:22:21 +0200 Subject: [PATCH] Deal with dates far in the future. --- src/tink/state/ObservableDate.hx | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/tink/state/ObservableDate.hx b/src/tink/state/ObservableDate.hx index 5b5c6d4..1a95cce 100644 --- a/src/tink/state/ObservableDate.hx +++ b/src/tink/state/ObservableDate.hx @@ -44,7 +44,17 @@ class ObservableDate implements ObservableObject { if (passed) PASSED; else { var state = new State(false); - haxe.Timer.delay(() -> state.set(true), Std.int(stamp - now)); + function schedule() { + if (now == null) now = Date.now().getTime(); + switch Std.int(now - stamp) { + case _ < 0 => true: // overflow + now = null; + haxe.Timer.delay(schedule, 1 << 30); + case v: + haxe.Timer.delay(() -> state.set(true), v); + } + } + schedule(); state; } }