26 lines
415 B
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")
|
|
}
|