Files
llgo/_demo/c/thread/thd.go

26 lines
524 B
Go
Raw Normal View History

2024-05-31 20:02:59 +08:00
package main
import (
2025-04-03 15:52:18 +08:00
"github.com/goplus/lib/c"
"github.com/goplus/lib/c/pthread"
2024-05-31 20:02:59 +08:00
)
var key pthread.Key
func main() {
key.Create(nil)
key.Set(c.Pointer(c.Str("main value\n")))
var thd pthread.Thread
pthread.Create(&thd, nil, func(arg c.Pointer) c.Pointer {
key.Set(c.Pointer(c.Str("thread value\n")))
c.Printf(c.Str("Hello, thread\nTLS: %s"), key.Get())
return c.Pointer(c.Str("Back to main\n"))
}, nil)
var retval c.Pointer
pthread.Join(thd, &retval)
c.Printf(c.Str("%sTLS: %s"), retval, key.Get())
}