mirror of
https://git.sr.ht/~eliasnaur/gio
synced 2026-07-02 16:06:19 +00:00
65d79f295f
Signed-off-by: Elias Naur <mail@eliasnaur.com>
31 lines
426 B
Go
31 lines
426 B
Go
// SPDX-License-Identifier: Unlicense OR MIT
|
|
|
|
package window
|
|
|
|
/*
|
|
#include "os_darwin.h"
|
|
*/
|
|
import "C"
|
|
|
|
var mainFuncs = make(chan func(), 1)
|
|
|
|
// runOnMain runs the function on the main thread.
|
|
func runOnMain(f func()) {
|
|
go func() {
|
|
mainFuncs <- f
|
|
C.gio_wakeupMainThread()
|
|
}()
|
|
}
|
|
|
|
//export gio_dispatchMainFuncs
|
|
func gio_dispatchMainFuncs() {
|
|
for {
|
|
select {
|
|
case f := <-mainFuncs:
|
|
f()
|
|
default:
|
|
return
|
|
}
|
|
}
|
|
}
|