xx/osthread/osthread_windows.go

25 lines
469 B
Go

//go:build windows
package osthread
import (
"syscall"
"github.com/ebitengine/purego"
)
func onmainthread() bool {
return mainThreadId == getCurrentThreadId()
}
var (
mainThreadId int32
getCurrentThreadId func() int32
)
func init() {
kernel32 := syscall.NewLazyDLL("kernel32.dll").Handle()
purego.RegisterLibFunc(&getCurrentThreadId, kernel32, "GetCurrentThreadId")
mainThreadId = getCurrentThreadId() // init is always called on the main thread
}