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
 
        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
 
 
 func Getpagesize() int { return 4096 }
 
-//sys  exits(msg *byte)
-func Exits(msg *string) {
-       if msg == nil {
-               exits(nil)
-       }
-
-       exits(StringBytePtr(*msg))
-}
+// Implemented in assembly to import from runtime.
+func exit(int)
 
-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