From f4f65941246bfee2ef742a5a4920f86d80ab4762 Mon Sep 17 00:00:00 2001 From: Richard Musiol Date: Tue, 11 Dec 2018 13:59:18 +0100 Subject: [PATCH] runtime: fix notetsleepg deadline on js/wasm A notetsleepg may get stuck if its timeout callback gets invoked exactly on its deadline due to low precision of nanotime. This change fixes the comparison so it also resolves the note if the timestamps are equal. Updates #28975 Change-Id: I045d2f48b7f41cea0caec19b56876e9de01dcd6c Reviewed-on: https://go-review.googlesource.com/c/153558 Run-TryBot: Richard Musiol TryBot-Result: Gobot Gobot Reviewed-by: Ian Lance Taylor --- src/runtime/lock_js.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/lock_js.go b/src/runtime/lock_js.go index b04ccdb107..f58c915b63 100644 --- a/src/runtime/lock_js.go +++ b/src/runtime/lock_js.go @@ -127,7 +127,7 @@ func notetsleepg(n *note, ns int64) bool { func checkTimeouts() { now := nanotime() for n, nt := range notesWithTimeout { - if n.key == note_cleared && now > nt.deadline { + if n.key == note_cleared && now >= nt.deadline { n.key = note_timeout goready(nt.gp, 1) } -- 2.50.0