mirror of
https://github.com/golang/go
synced 2024-11-22 14:54:46 -07:00
syscall: cleanly exit all Go procs on Plan 9
syscall.Exit would originally kill only the calling Go proc, leaving behind other procs in the same group. This change makes syscall.Exit call runtime·exit, which due to CL https://golang.org/cl/5617048 will cleanly exit all the Go procs in the group. R=golang-dev, rsc, rminnich, remyoudompheng, ality, john CC=golang-dev, mirtchovski https://golang.org/cl/6036051
This commit is contained in:
parent
fca32f02e9
commit
49a7da2dd9
@ -149,3 +149,11 @@ copyresult6:
|
||||
MOVSL
|
||||
MOVSL
|
||||
RET
|
||||
|
||||
//func exit(code int)
|
||||
// Import runtime·exit for cleanly exiting.
|
||||
TEXT ·exit(SB),7,$4
|
||||
MOVL code+0(FP), AX
|
||||
MOVL AX, 0(SP)
|
||||
CALL runtime·exit(SB)
|
||||
RET
|
||||
|
@ -69,23 +69,10 @@ func errstr() string {
|
||||
|
||||
func Getpagesize() int { return 4096 }
|
||||
|
||||
//sys exits(msg *byte)
|
||||
func Exits(msg *string) {
|
||||
if msg == nil {
|
||||
exits(nil)
|
||||
}
|
||||
// Implemented in assembly to import from runtime.
|
||||
func exit(int)
|
||||
|
||||
exits(StringBytePtr(*msg))
|
||||
}
|
||||
|
||||
func Exit(code int) {
|
||||
if code == 0 {
|
||||
Exits(nil)
|
||||
}
|
||||
|
||||
msg := itoa(code)
|
||||
Exits(&msg)
|
||||
}
|
||||
func Exit(code int) { exit(code) }
|
||||
|
||||
func readnum(path string) (uint, error) {
|
||||
var b [12]byte
|
||||
|
Loading…
Reference in New Issue
Block a user