]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: change sigset_all and sigset_none into constants on OpenBSD
authorMatthew Dempsky <mdempsky@google.com>
Mon, 2 Mar 2015 03:13:50 +0000 (19:13 -0800)
committerMikio Hara <mikioh.mikioh@gmail.com>
Mon, 2 Mar 2015 08:30:39 +0000 (08:30 +0000)
OpenBSD's sigprocmask system call passes the signal mask by value
rather than reference, so vars are unnecessary.  Additionally,
declaring "var sigset_all = ^sigset_none" means sigset_all won't be
initialized until runtime_init is called, but the first call to
newosproc happens before then.

I've witnessed Go processes on OpenBSD crash from receiving SIGWINCH
on the newly created OS thread before it finished initializing.

Change-Id: I16995e7e466d5e7e50bcaa7d9490173789a0b4cc
Reviewed-on: https://go-review.googlesource.com/6440
Reviewed-by: Mikio Hara <mikioh.mikioh@gmail.com>
Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org>
src/runtime/os1_openbsd.go

index d23d812aced29efd88ccff8d9f8d854d1c545cdd..04779ea870fbb99f4f990ff39aa95546f417ced5 100644 (file)
@@ -19,8 +19,10 @@ const (
        _CLOCK_MONOTONIC = 3
 )
 
-var sigset_none = uint32(0)
-var sigset_all = ^sigset_none
+const (
+       sigset_none = uint32(0)
+       sigset_all  = ^uint32(0)
+)
 
 // From OpenBSD's <sys/sysctl.h>
 const (