diff options
Diffstat (limited to 'src/pkg/runtime/darwin/amd64/signal.c')
| -rw-r--r-- | src/pkg/runtime/darwin/amd64/signal.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/src/pkg/runtime/darwin/amd64/signal.c b/src/pkg/runtime/darwin/amd64/signal.c index b3fa8404f..648ef207c 100644 --- a/src/pkg/runtime/darwin/amd64/signal.c +++ b/src/pkg/runtime/darwin/amd64/signal.c @@ -138,7 +138,7 @@ signalstack(byte *p, int32 n) } void -initsig(void) +initsig(int32 queue) { int32 i; static Sigaction sa; @@ -150,6 +150,8 @@ initsig(void) sa.sa_tramp = sigtramp; // sigtramp's job is to call into real handler for(i = 0; i<NSIG; i++) { if(sigtab[i].flags) { + if((sigtab[i].flags & SigQueue) != queue) + continue; if(sigtab[i].flags & (SigCatch | SigQueue)) { sa.__sigaction_u.__sa_sigaction = sighandler; } else { |
