diff --git a/app/os_android.go b/app/os_android.go index 5b212134..0762074a 100644 --- a/app/os_android.go +++ b/app/os_android.go @@ -1318,6 +1318,7 @@ func findClass(env *C.JNIEnv, name string) C.jclass { } func osMain() { + select {} } func newWindow(window *callbacks, options []Option) { diff --git a/app/os_ios.go b/app/os_ios.go index 2a281cb8..db20e5e4 100644 --- a/app/os_ios.go +++ b/app/os_ios.go @@ -405,11 +405,12 @@ const ( ) func osMain() { - if !isMainThread() { - panic("app.Main must be run on the main goroutine") - } switch mainMode { case mainModeUndefined: + if !isMainThread() { + panic("app.Main must be run on the main goroutine") + } + mainMode = mainModeExe var argv []*C.char for _, arg := range os.Args { @@ -423,6 +424,7 @@ func osMain() { case mainModeLibrary: // Do nothing, we're embedded as a library. } + select {} } //export gio_runMain diff --git a/app/runmain.go b/app/runmain.go index a1c1e3d4..d01d85a6 100644 --- a/app/runmain.go +++ b/app/runmain.go @@ -25,6 +25,6 @@ func runMain() { // Indirect call, since the linker does not know the address of main when // laying down this package. fn := mainMain - fn() + go fn() }) }