Go 1.10 Go 함수 로 C 함수 의 생명 주 기 를 제어 합 니 다.

1039 단어 GolangCLanguage
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 {
    return 0
}

좋은 웹페이지 즐겨찾기