package main
import (
"context"
"syscall"
"time"
"unsafe"
)
/*
int goexit(void* func)
{
((int (*)())func)();
return 0;
}
*/
import "C"
func main() {
go func() {
time.Sleep(10e9)
can()
}()
ptr := syscall.NewCallback(wait)
C.goexit(unsafe.Pointer(ptr))
}
var ctx, can = context.WithCancel(context.Background())
func wait() int {
<-ctx.Done()
return 0
}
Go1.10用Go函數控制C函數的生命週期
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.