go-nativenotify

Native notifications in Go
Log | Files | Refs | README | LICENSE

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:
Mcmd/notify/main.go | 13++++++++++++-
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 {} + } }