Commit 647dc1af authored by Daniel Martí's avatar Daniel Martí

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: default avatarBryan C. Mills <bcmills@google.com>
parent 35ac1945
......@@ -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
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment