diff options
author | Andrew Gerrand <adg@golang.org> | 2014-08-12 14:07:22 +1000 |
---|---|---|
committer | Andrew Gerrand <adg@golang.org> | 2014-08-12 14:07:22 +1000 |
commit | c6f639cdf6e3739e25896447f8902899568b5402 (patch) | |
tree | bc56f18574c24918e7952f9b710bc6d3581ca319 | |
parent | 3fa4a7849c51eaad5a5c67f80489e0e12ff10005 (diff) | |
download | go-c6f639cdf6e3739e25896447f8902899568b5402.tar.gz go-c6f639cdf6e3739e25896447f8902899568b5402.zip |
[release-branch.go1.3] runtime: ignore exceptions from foreign threads.
««« CL 104200046 / 14683b1cf2cc
runtime: ignore exceptions from foreign threads.
Fixes #8224.
LGTM=alex.brainman, rsc
R=alex.brainman, rsc, dave
CC=golang-codereviews
https://golang.org/cl/104200046
»»»
LGTM=alex.brainman, minux
R=rsc, alex.brainman, minux
CC=golang-codereviews
https://golang.org/cl/126010043
-rw-r--r-- | src/pkg/runtime/sys_windows_386.s | 5 | ||||
-rw-r--r-- | src/pkg/runtime/sys_windows_amd64.s | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/pkg/runtime/sys_windows_386.s b/src/pkg/runtime/sys_windows_386.s index e0c0631cfc..576831d2cc 100644 --- a/src/pkg/runtime/sys_windows_386.s +++ b/src/pkg/runtime/sys_windows_386.s @@ -88,6 +88,10 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$0-0 // fetch g get_tls(DX) + CMPL DX, $0 + JNE 3(PC) + MOVL $0, AX // continue + JMP done MOVL m(DX), AX CMPL AX, $0 JNE 2(PC) @@ -100,6 +104,7 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$0-0 CALL runtime·sighandler(SB) // AX is set to report result back to Windows +done: // restore callee-saved registers MOVL 24(SP), DI MOVL 20(SP), SI diff --git a/src/pkg/runtime/sys_windows_amd64.s b/src/pkg/runtime/sys_windows_amd64.s index 94845903ed..d161be6a50 100644 --- a/src/pkg/runtime/sys_windows_amd64.s +++ b/src/pkg/runtime/sys_windows_amd64.s @@ -120,6 +120,10 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$0-0 // fetch g get_tls(DX) + CMPQ DX, $0 + JNE 3(PC) + MOVQ $0, AX // continue + JMP done MOVQ m(DX), AX CMPQ AX, $0 JNE 2(PC) @@ -132,6 +136,7 @@ TEXT runtime·sigtramp(SB),NOSPLIT,$0-0 CALL runtime·sighandler(SB) // AX is set to report result back to Windows +done: // restore registers as required for windows callback MOVQ 24(SP), R15 MOVQ 32(SP), R14 |