diff --git a/misc/cgo/testsigfwd/main.go b/misc/cgo/testsigfwd/main.go index 6d97050078..1d8633971d 100644 --- a/misc/cgo/testsigfwd/main.go +++ b/misc/cgo/testsigfwd/main.go @@ -7,14 +7,10 @@ package main import "fmt" /* -#cgo CFLAGS: -pthread -#cgo LDFLAGS: -pthread - #include #include #include #include -#include int *p; static void sigsegv() { @@ -30,60 +26,12 @@ static void segvhandler(int signum) { } } -static volatile sig_atomic_t sigioSeen; - -// Use up some stack space. -static void recur(int i, char *p) { - char a[1024]; - - *p = '\0'; - if (i > 0) { - recur(i - 1, a); - } -} - -static void iohandler(int signum) { - char a[1024]; - - recur(4, a); - sigioSeen = 1; -} - -static void* sigioThread(void* arg __attribute__ ((unused))) { - raise(SIGIO); - return NULL; -} - -static void sigioOnThread() { - pthread_t tid; - int i; - - pthread_create(&tid, NULL, sigioThread, NULL); - pthread_join(tid, NULL); - - // Wait until the signal has been delivered. - i = 0; - while (!sigioSeen) { - if (sched_yield() < 0) { - perror("sched_yield"); - } - i++; - if (i > 10000) { - fprintf(stderr, "looping too long waiting for signal\n"); - exit(EXIT_FAILURE); - } - } -} - static void __attribute__ ((constructor)) sigsetup(void) { struct sigaction act; memset(&act, 0, sizeof act); act.sa_handler = segvhandler; sigaction(SIGSEGV, &act, NULL); - - act.sa_handler = iohandler; - sigaction(SIGIO, &act, NULL); } */ import "C"