From 175e134478a5b5ab41a56f46288b9959342f18f9 Mon Sep 17 00:00:00 2001 From: Elias Naur Date: Sun, 2 Jun 2024 09:07:29 +0200 Subject: [PATCH] app: [macOS] panic if Main is not called from the main goroutine Signed-off-by: Elias Naur --- app/os_darwin.go | 6 +++++- app/os_macos.go | 3 +++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/os_darwin.go b/app/os_darwin.go index 8f82cc94..fc5a4353 100644 --- a/app/os_darwin.go +++ b/app/os_darwin.go @@ -75,9 +75,13 @@ var displayLinks sync.Map var mainFuncs = make(chan func(), 1) +func isMainThread() bool { + return bool(C.isMainThread()) +} + // runOnMain runs the function on the main thread. func runOnMain(f func()) { - if C.isMainThread() { + if isMainThread() { f() return } diff --git a/app/os_macos.go b/app/os_macos.go index cb27f942..1da5083f 100644 --- a/app/os_macos.go +++ b/app/os_macos.go @@ -976,6 +976,9 @@ func (w *window) init() error { } func osMain() { + if !isMainThread() { + panic("app.Main must run on the main goroutine") + } C.gio_main() }