diff options
Diffstat (limited to 'src/pkg/runtime/thread_darwin.c')
| -rw-r--r-- | src/pkg/runtime/thread_darwin.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/pkg/runtime/thread_darwin.c b/src/pkg/runtime/thread_darwin.c index d55ec8dc3e..df1adf63e9 100644 --- a/src/pkg/runtime/thread_darwin.c +++ b/src/pkg/runtime/thread_darwin.c @@ -9,6 +9,7 @@ extern SigTab runtime·sigtab[]; +static Sigset sigset_none; static Sigset sigset_all = ~(Sigset)0; static Sigset sigset_prof = 1<<(SIGPROF-1); @@ -98,8 +99,6 @@ runtime·newosproc(M *mp, G *gp, void *stk, void (*fn)(void)) } runtime·sigprocmask(SIG_SETMASK, &sigset_all, &oset); - mp->sigset = runtime·mal(sizeof(Sigset)); - *(Sigset*)mp->sigset = oset; errno = runtime·bsdthread_create(stk, mp, gp, fn); runtime·sigprocmask(SIG_SETMASK, &oset, nil); @@ -117,8 +116,7 @@ runtime·minit(void) m->gsignal = runtime·malg(32*1024); // OS X wants >=8K, Linux >=2K runtime·signalstack((byte*)m->gsignal->stackguard - StackGuard, 32*1024); - if(m->sigset != nil) - runtime·sigprocmask(SIG_SETMASK, m->sigset, nil); + runtime·sigprocmask(SIG_SETMASK, &sigset_none, nil); runtime·setprof(m->profilehz > 0); } |
