commit 959c304e3da569980b6f9d6de4ad9fc51e951214
parent 2dc26c2ba1a416f072d67b707c3671564a6f13c7
Author: Jack Mordaunt <jackmordaunt.dev@gmail.com>
Date: Thu, 16 Jan 2025 17:07:15 +0800
cmd/notify: trick runtime on Windows to stay alive
The Go runtime likes to panic because it's unaware that it might be called
back by Windows.
Signed-off-by: Jack Mordaunt <jackmordaunt.dev@gmail.com>
Diffstat:
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/cmd/notify/main.go b/cmd/notify/main.go
@@ -6,6 +6,8 @@ import (
"log/slog"
"os"
"path/filepath"
+ "runtime"
+ "time"
"git.sr.ht/~jackmordaunt/go-nativenotify"
)
@@ -78,5 +80,14 @@ func main() {
}
fmt.Printf("callback invocation will log, quit when done (ctr-c)\n")
- select {}
+ wait()
+}
+
+func wait() {
+ if runtime.GOOS == "windows" {
+ // Avoid the deadlock panic on Windows.
+ <-time.NewTimer(1<<63 - 1).C
+ } else {
+ select {}
+ }
}