Commit cfae35ef authored by Alex Brainman's avatar Alex Brainman

syscall: make windows Exit call runtime.exit

Both runtime.exit and syscall.Exit call Windows ExitProcess.
But recently (CL 34616) runtime.exit was changed to ignore
Windows CreateThread errors if ExitProcess is called.

This CL adjusts syscall.Exit to do the same.

Fixes #18253 (maybe)

Change-Id: I6496c31b01e7c7d73b69c0b2ae33ed7fbe06736b
Reviewed-on: https://go-review.googlesource.com/45115
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: default avatarRob Pike <r@golang.org>
Reviewed-by: default avatarAustin Clements <austin@google.com>
parent 78cf0e56
...@@ -207,3 +207,9 @@ func syscall_Syscall15(fn, nargs, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, ...@@ -207,3 +207,9 @@ func syscall_Syscall15(fn, nargs, a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11,
cgocall(asmstdcallAddr, unsafe.Pointer(c)) cgocall(asmstdcallAddr, unsafe.Pointer(c))
return c.r1, c.r2, c.err return c.r1, c.r2, c.err
} }
//go:linkname syscall_exit syscall.Exit
//go:nosplit
func syscall_exit(code int) {
exit(int32(code))
}
...@@ -236,7 +236,8 @@ func NewCallbackCDecl(fn interface{}) uintptr { ...@@ -236,7 +236,8 @@ func NewCallbackCDecl(fn interface{}) uintptr {
// syscall interface implementation for other packages // syscall interface implementation for other packages
func Exit(code int) { ExitProcess(uint32(code)) } // Implemented in ../runtime/syscall_windows.go.
func Exit(code int)
func makeInheritSa() *SecurityAttributes { func makeInheritSa() *SecurityAttributes {
var sa SecurityAttributes var sa SecurityAttributes
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment