From 7c5ea31800c94f972163c079697881c3545b8d14 Mon Sep 17 00:00:00 2001 From: Zoffix Znet Date: Sat, 26 Nov 2016 01:57:34 -0500 Subject: [PATCH] sleep() for correct number of seconds for values above 1e16 seconds --- src/core/Date.pm | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/core/Date.pm b/src/core/Date.pm index 9cb551da73e..4187a2034e8 100644 --- a/src/core/Date.pm +++ b/src/core/Date.pm @@ -199,7 +199,10 @@ sub sleep($seconds = Inf --> Nil) { nqp::sleep(1e16) while True; } elsif $seconds > 1e16 { - nqp::sleep(1e16) for ^$seconds.Num.polymod: 1e16 xx *; + nqp::sleep($_) for gather { + 1e16.take xx ($seconds / 1e16); + take $seconds - 1e16 * ($seconds / 1e16).Int; + } } elsif $seconds > 0 { nqp::sleep($seconds.Num);