mirror of
https://github.com/golang/go
synced 2024-11-12 09:50:21 -07:00
dfa5893d4f
* syscall: add syscall.RawSyscall, which doesn't use sys.entersyscall/sys.exitsyscall add syscall.dup2 add syscall.BytePtrPtr add syscall.Rusage, RusagePtr add syscall.F_GETFD, F_SETFD, FD_CLOEXEC * runtime: clean up, correct signal handling. can now survive (continue running after) a signal. R=r DELTA=394 (286 added, 51 deleted, 57 changed) OCL=20351 CL=20369
20 lines
443 B
Go
20 lines
443 B
Go
// $G $D/$F.go && $L $F.$A && ./$A.out
|
|
|
|
// Copyright 2009 The Go Authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style
|
|
// license that can be found in the LICENSE file.
|
|
|
|
package main
|
|
|
|
import "syscall"
|
|
|
|
func getpid() int64 {
|
|
r1, r2, err := syscall.Syscall(syscall.SYS_GETPID, 0, 0, 0);
|
|
return r1;
|
|
}
|
|
|
|
func main() {
|
|
syscall.Syscall(syscall.SYS_KILL, getpid(), syscall.SIGCHLD, 0);
|
|
println("survived SIGCHLD");
|
|
}
|