mirror of
https://github.com/golang/go
synced 2024-11-22 14:44:50 -07:00
Revert "runtime: don't forward SIGPIPE on macOS"
This reverts CL 188297. Reason for revert: broke multiple of the darwin builders. Fixes #33943. Change-Id: Iacff98d1450edc70402dc7a220d16fcd73337c9e Reviewed-on: https://go-review.googlesource.com/c/go/+/191784 Run-TryBot: Daniel Martí <mvdan@mvdan.cc> Reviewed-by: Bryan C. Mills <bcmills@google.com>
This commit is contained in:
parent
35ac194557
commit
647dc1afc5
21
misc/cgo/testcarchive/testdata/main3.c
vendored
21
misc/cgo/testcarchive/testdata/main3.c
vendored
@ -12,7 +12,6 @@
|
||||
#include <time.h>
|
||||
#include <sched.h>
|
||||
#include <unistd.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#include "libgo3.h"
|
||||
|
||||
@ -52,18 +51,11 @@ static void init() {
|
||||
}
|
||||
}
|
||||
|
||||
static void *provokeSIGPIPE(void *arg) {
|
||||
ProvokeSIGPIPE();
|
||||
return NULL;
|
||||
}
|
||||
|
||||
int main(int argc, char** argv) {
|
||||
int verbose;
|
||||
struct sigaction sa;
|
||||
int i;
|
||||
struct timespec ts;
|
||||
int res;
|
||||
pthread_t tid;
|
||||
|
||||
verbose = argc > 2;
|
||||
setvbuf(stdout, NULL, _IONBF, 0);
|
||||
@ -76,19 +68,6 @@ int main(int argc, char** argv) {
|
||||
// a non-default SIGPIPE handler before the runtime initializes.
|
||||
ProvokeSIGPIPE();
|
||||
|
||||
// Test that SIGPIPE on a non-main thread is also handled by Go.
|
||||
res = pthread_create(&tid, NULL, provokeSIGPIPE, NULL);
|
||||
if (res != 0) {
|
||||
fprintf(stderr, "pthread_create: %s\n", strerror(res));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
res = pthread_join(tid, NULL);
|
||||
if (res != 0) {
|
||||
fprintf(stderr, "pthread_join: %s\n", strerror(res));
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if (verbose) {
|
||||
printf("calling sigaction\n");
|
||||
}
|
||||
|
@ -636,13 +636,6 @@ func sigfwdgo(sig uint32, info *siginfo, ctx unsafe.Pointer) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
// This function and its caller sigtrampgo assumes SIGPIPE is delivered on the
|
||||
// originating thread. This property does not hold on macOS (golang.org/issue/33384),
|
||||
// so we have no choice but to ignore SIGPIPE.
|
||||
if GOOS == "darwin" && sig == _SIGPIPE {
|
||||
return true
|
||||
}
|
||||
|
||||
// If there is no handler to forward to, no need to forward.
|
||||
if fwdFn == _SIG_DFL {
|
||||
return false
|
||||
|
Loading…
Reference in New Issue
Block a user