mirror of
https://github.com/golang/go
synced 2024-10-04 18:21:21 -06:00
c4770b991b
NPTL uses SIGRTMIN (signal 32) to effect thread cancellation. Go's runtime replaces NPTL's signal handler with its own, and ends up aborting if a C library that ends up calling pthread_cancel is used. This patch prevents runtime from replacing NPTL's handler. Fixes #6997. R=golang-codereviews, iant, dvyukov CC=golang-codereviews https://golang.org/cl/47540043
84 lines
2.5 KiB
C
84 lines
2.5 KiB
C
// Copyright 2009 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
#define N SigNotify
|
|
#define K SigKill
|
|
#define T SigThrow
|
|
#define P SigPanic
|
|
#define D SigDefault
|
|
|
|
SigTab runtime·sigtab[] = {
|
|
/* 0 */ 0, "SIGNONE: no trap",
|
|
/* 1 */ N+K, "SIGHUP: terminal line hangup",
|
|
/* 2 */ N+K, "SIGINT: interrupt",
|
|
/* 3 */ N+T, "SIGQUIT: quit",
|
|
/* 4 */ T, "SIGILL: illegal instruction",
|
|
/* 5 */ T, "SIGTRAP: trace trap",
|
|
/* 6 */ N+T, "SIGABRT: abort",
|
|
/* 7 */ P, "SIGBUS: bus error",
|
|
/* 8 */ P, "SIGFPE: floating-point exception",
|
|
/* 9 */ 0, "SIGKILL: kill",
|
|
/* 10 */ N, "SIGUSR1: user-defined signal 1",
|
|
/* 11 */ P, "SIGSEGV: segmentation violation",
|
|
/* 12 */ N, "SIGUSR2: user-defined signal 2",
|
|
/* 13 */ N, "SIGPIPE: write to broken pipe",
|
|
/* 14 */ N, "SIGALRM: alarm clock",
|
|
/* 15 */ N+K, "SIGTERM: termination",
|
|
/* 16 */ T, "SIGSTKFLT: stack fault",
|
|
/* 17 */ N, "SIGCHLD: child status has changed",
|
|
/* 18 */ 0, "SIGCONT: continue",
|
|
/* 19 */ 0, "SIGSTOP: stop, unblockable",
|
|
/* 20 */ N+D, "SIGTSTP: keyboard stop",
|
|
/* 21 */ N+D, "SIGTTIN: background read from tty",
|
|
/* 22 */ N+D, "SIGTTOU: background write to tty",
|
|
/* 23 */ N, "SIGURG: urgent condition on socket",
|
|
/* 24 */ N, "SIGXCPU: cpu limit exceeded",
|
|
/* 25 */ N, "SIGXFSZ: file size limit exceeded",
|
|
/* 26 */ N, "SIGVTALRM: virtual alarm clock",
|
|
/* 27 */ N, "SIGPROF: profiling alarm clock",
|
|
/* 28 */ N, "SIGWINCH: window size change",
|
|
/* 29 */ N, "SIGIO: i/o now possible",
|
|
/* 30 */ N, "SIGPWR: power failure restart",
|
|
/* 31 */ N, "SIGSYS: bad system call",
|
|
/* 32 */ 0, "signal 32", /* SIGCANCEL; see issue 6997 */
|
|
/* 33 */ 0, "signal 33", /* SIGSETXID; see issue 3871 */
|
|
/* 34 */ N, "signal 34",
|
|
/* 35 */ N, "signal 35",
|
|
/* 36 */ N, "signal 36",
|
|
/* 37 */ N, "signal 37",
|
|
/* 38 */ N, "signal 38",
|
|
/* 39 */ N, "signal 39",
|
|
/* 40 */ N, "signal 40",
|
|
/* 41 */ N, "signal 41",
|
|
/* 42 */ N, "signal 42",
|
|
/* 43 */ N, "signal 43",
|
|
/* 44 */ N, "signal 44",
|
|
/* 45 */ N, "signal 45",
|
|
/* 46 */ N, "signal 46",
|
|
/* 47 */ N, "signal 47",
|
|
/* 48 */ N, "signal 48",
|
|
/* 49 */ N, "signal 49",
|
|
/* 50 */ N, "signal 50",
|
|
/* 51 */ N, "signal 51",
|
|
/* 52 */ N, "signal 52",
|
|
/* 53 */ N, "signal 53",
|
|
/* 54 */ N, "signal 54",
|
|
/* 55 */ N, "signal 55",
|
|
/* 56 */ N, "signal 56",
|
|
/* 57 */ N, "signal 57",
|
|
/* 58 */ N, "signal 58",
|
|
/* 59 */ N, "signal 59",
|
|
/* 60 */ N, "signal 60",
|
|
/* 61 */ N, "signal 61",
|
|
/* 62 */ N, "signal 62",
|
|
/* 63 */ N, "signal 63",
|
|
/* 64 */ N, "signal 64",
|
|
};
|
|
|
|
#undef N
|
|
#undef K
|
|
#undef T
|
|
#undef P
|
|
#undef D
|