• Joe Sylve's avatar
    runtime: improve last ditch signal forwarding for Unix libraries · df2b2eb6
    Joe Sylve authored
    The current runtime attempts to forward signals generated by non-Go
    code to the original signal handler.  If it can't call the original
    handler directly, it currently attempts to re-raise the signal after
    resetting the handler.  In this case, the original context is lost.
    
    This fix prevents that problem by simply returning from the go signal
    handler after resetting the original handler.  It only does this when
    the original handler is the system default handler, which in all cases
    is known to not recover.  The signal is not reset, so it is retriggered
    and the original handler takes over with the proper context.
    
    Fixes #14899
    
    Change-Id: Ib1c19dfa4b50d9732d7a453de3784c8141e1cbb3
    Reviewed-on: https://go-review.googlesource.com/21006Reviewed-by: 's avatarIan Lance Taylor <iant@golang.org>
    df2b2eb6
signal_freebsd.go 3.15 KB