]> Cypherpunks repositories - gostls13.git/commitdiff
Revert "runtime: don't forward SIGPIPE on macOS"
authorDaniel Martí <mvdan@mvdan.cc>
Thu, 29 Aug 2019 15:19:44 +0000 (15:19 +0000)
committerDaniel Martí <mvdan@mvdan.cc>
Thu, 29 Aug 2019 15:37:46 +0000 (15:37 +0000)
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>
misc/cgo/testcarchive/testdata/main3.c
src/runtime/signal_unix.go

index 4d11d9ce4c33267cf23f7e63294c1d0bacfc5128..60a16cf5fc464ffb13aaf3076694be4a83d7f826 100644 (file)
@@ -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");
        }
index 436c18c1261f5443f829b22a17bbb83cce9386c5..ad51dc1800fef0746f705994a64dd4082ad61d9b 100644 (file)
@@ -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