• Elias Naur's avatar
    runtime: use a proper type, sigset, for m.sigmask · a7383fc4
    Elias Naur authored
    Replace the cross platform but unsafe [4]uintptr type with a OS
    specific type, sigset. Most OSes already define sigset, and this
    change defines a suitable sigset for the OSes that don't (darwin,
    openbsd). The OSes that don't use m.sigmask (windows, plan9, nacl)
    now defines sigset as the empty type, struct{}.
    
    The gain is strongly typed access to m.sigmask, saving a dynamic
    size sanity check and unsafe.Pointer casting. Also, some storage is
    saved for each M, since [4]uinptr was conservative for most OSes.
    
    The cost is that OSes that don't need m.sigmask has to define sigset.
    
    completes ./all.bash with GOOS linux, on amd64
    completes ./make.bash with GOOSes openbsd, android, plan9, windows,
    darwin, solaris, netbsd, freebsd, dragonfly, all amd64.
    
    With GOOS=nacl ./make.bash failed with a seemingly unrelated error.
    
    [Replay of CL 16942 by Elias Naur.]
    
    Change-Id: I98f144d626033ae5318576115ed635415ac71b2c
    Reviewed-on: https://go-review.googlesource.com/17033Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    Run-TryBot: Russ Cox <rsc@golang.org>
    a7383fc4
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...