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() }