xx/osthread/osthread_linux.go

26 lines
415 B
Go

//go:build linux
package osthread
import (
"github.com/ebitengine/purego"
)
func onmainthread() bool {
return getpid() == gettid()
}
var (
getpid func() int32
gettid func() int32
)
func init() {
libc, err := purego.Dlopen("libc.so.6", purego.RTLD_GLOBAL|purego.RTLD_NOW)
if err != nil {
panic(err)
}
purego.RegisterLibFunc(&getpid, libc, "getpid")
purego.RegisterLibFunc(&gettid, libc, "gettid")
}