summaryrefslogtreecommitdiff
path: root/src/pkg/runtime/darwin/amd64/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/pkg/runtime/darwin/amd64/signal.c')
-rw-r--r--src/pkg/runtime/darwin/amd64/signal.c4
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 {