• Ian Lance Taylor's avatar
    runtime: on NetBSD and DragonFly drop signal stack in new thread · 4c4476c2
    Ian Lance Taylor authored
    On NetBSD and DragonFly a newly created thread inherits the signal stack
    of the creating thread.  This breaks horribly if both threads get a
    signal at the same time.  Fix this by dropping the signal stack in the
    newly created thread.  The right signal stack will then get installed
    later.
    
    Note that cgo code that calls pthread_create will have the wrong,
    duplicated, signal stack in the newly created thread.  I don't see any
    way to fix that in Go.  People using cgo to call pthread_create will
    have to be aware of the problem.
    
    Fixes #13945.
    Fixes #13947.
    
    Change-Id: I0c7bd2cdf9ada575d57182ca5e9523060de34931
    Reviewed-on: https://go-review.googlesource.com/18814
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    4c4476c2
Name
Last commit
Last update
..
asm_386.s Loading commit data...
asm_amd64.s Loading commit data...
asm_arm.s Loading commit data...
asm_arm64.s Loading commit data...
asm_nacl_amd64p32.s Loading commit data...
asm_ppc64x.s Loading commit data...
callbacks.go Loading commit data...
cgo.go Loading commit data...
dragonfly.go Loading commit data...
freebsd.go Loading commit data...
gcc_386.S Loading commit data...
gcc_amd64.S Loading commit data...
gcc_android.c Loading commit data...
gcc_android_386.c Loading commit data...
gcc_android_amd64.c Loading commit data...
gcc_android_arm.c Loading commit data...
gcc_android_arm64.c Loading commit data...
gcc_arm.S Loading commit data...
gcc_arm64.S Loading commit data...
gcc_darwin_386.c Loading commit data...
gcc_darwin_amd64.c Loading commit data...
gcc_darwin_arm.c Loading commit data...
gcc_darwin_arm64.c Loading commit data...
gcc_dragonfly_amd64.c Loading commit data...
gcc_fatalf.c Loading commit data...
gcc_freebsd_386.c Loading commit data...
gcc_freebsd_amd64.c Loading commit data...
gcc_freebsd_arm.c Loading commit data...
gcc_libinit.c Loading commit data...
gcc_libinit_linux_ppc64x.c Loading commit data...
gcc_libinit_openbsd.c Loading commit data...
gcc_libinit_windows.c Loading commit data...
gcc_linux_386.c Loading commit data...
gcc_linux_amd64.c Loading commit data...
gcc_linux_arm.c Loading commit data...
gcc_linux_arm64.c Loading commit data...
gcc_linux_ppc64x.c Loading commit data...
gcc_mmap.c Loading commit data...
gcc_netbsd_386.c Loading commit data...
gcc_netbsd_amd64.c Loading commit data...
gcc_netbsd_arm.c Loading commit data...
gcc_openbsd_386.c Loading commit data...
gcc_openbsd_amd64.c Loading commit data...
gcc_ppc64x.S Loading commit data...
gcc_setenv.c Loading commit data...
gcc_signal_darwin_armx.c Loading commit data...
gcc_signal_darwin_lldb.c Loading commit data...
gcc_solaris_amd64.c Loading commit data...
gcc_util.c Loading commit data...
gcc_windows_386.c Loading commit data...
gcc_windows_amd64.c Loading commit data...
iscgo.go Loading commit data...
libcgo.h Loading commit data...
mmap.go Loading commit data...
netbsd.go Loading commit data...
openbsd.go Loading commit data...
setenv.go Loading commit data...
signal_darwin_arm.s Loading commit data...
signal_darwin_arm64.s Loading commit data...
signal_darwin_armx.go Loading commit data...