summaryrefslogtreecommitdiff
path: root/test/sigchld.go
diff options
context:
space:
mode:
authorRuss Cox <rsc@golang.org>2008-12-03 14:21:28 -0800
committerRuss Cox <rsc@golang.org>2008-12-03 14:21:28 -0800
commitdfa5893d4f5a5724e36e1265eba4e148ca42911f (patch)
treec5608a8146ee938d88da7942dd5bb4a17dc904ea /test/sigchld.go
parent2b39165f1eabc309bc774f6b1ac7c0ce62270c5d (diff)
downloadgo-git-dfa5893d4f5a5724e36e1265eba4e148ca42911f.tar.gz
preparation for exec.
* 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
Diffstat (limited to 'test/sigchld.go')
-rw-r--r--test/sigchld.go19
1 files changed, 19 insertions, 0 deletions
diff --git a/test/sigchld.go b/test/sigchld.go
new file mode 100644
index 0000000000..417b833c70
--- /dev/null
+++ b/test/sigchld.go
@@ -0,0 +1,19 @@
+// $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");
+}