mirror of
https://github.com/golang/go
synced 2024-11-23 00:10:07 -07:00
misc/cgo/testsigfwd: delete unused code
This code was introduced in CL 17903 but has never executed. It's also fundamentally non-deterministic. Delete it. Simplification for #37486. Change-Id: I049564123fb4fba401154e2ea0fc429e552d4749 Reviewed-on: https://go-review.googlesource.com/c/go/+/431258 Reviewed-by: Bryan Mills <bcmills@google.com> TryBot-Result: Gopher Robot <gobot@golang.org> Run-TryBot: Austin Clements <austin@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com>
This commit is contained in:
parent
44563340cc
commit
abd592b3d7
@ -7,14 +7,10 @@ package main
|
|||||||
import "fmt"
|
import "fmt"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
#cgo CFLAGS: -pthread
|
|
||||||
#cgo LDFLAGS: -pthread
|
|
||||||
|
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <pthread.h>
|
|
||||||
|
|
||||||
int *p;
|
int *p;
|
||||||
static void sigsegv() {
|
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) {
|
static void __attribute__ ((constructor)) sigsetup(void) {
|
||||||
struct sigaction act;
|
struct sigaction act;
|
||||||
|
|
||||||
memset(&act, 0, sizeof act);
|
memset(&act, 0, sizeof act);
|
||||||
act.sa_handler = segvhandler;
|
act.sa_handler = segvhandler;
|
||||||
sigaction(SIGSEGV, &act, NULL);
|
sigaction(SIGSEGV, &act, NULL);
|
||||||
|
|
||||||
act.sa_handler = iohandler;
|
|
||||||
sigaction(SIGIO, &act, NULL);
|
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
import "C"
|
import "C"
|
||||||
|
Loading…
Reference in New Issue
Block a user