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
diff --git a/src/pkg/runtime/sys_windows_386.s b/src/pkg/runtime/sys_windows_386.s
index dc6fc39..f2c2a41 100644
--- a/src/pkg/runtime/sys_windows_386.s
+++ b/src/pkg/runtime/sys_windows_386.s
@@ -88,6 +88,10 @@
 
 	// fetch g
 	get_tls(DX)
+	CMPL	DX, $0
+	JNE	3(PC)
+	MOVL	$0, AX // continue
+	JMP	done
 	MOVL	g(DX), DX
 	CMPL	DX, $0
 	JNE	2(PC)
@@ -99,6 +103,7 @@
 	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 c3db2c1..72b905e 100644
--- a/src/pkg/runtime/sys_windows_amd64.s
+++ b/src/pkg/runtime/sys_windows_amd64.s
@@ -120,6 +120,10 @@
 
 	// fetch g
 	get_tls(DX)
+	CMPQ	DX, $0
+	JNE	3(PC)
+	MOVQ	$0, AX // continue
+	JMP	done
 	MOVQ	g(DX), DX
 	CMPQ	DX, $0
 	JNE	2(PC)
@@ -131,6 +135,7 @@
 	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