Revert r215321.
[official-gcc.git] / libgo / go / os / signal / signal_unix.go
blob94b8ab3ddbf455795b5d222dcc6f1ca71b175e88
1 // Copyright 2012 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
5 // +build darwin dragonfly freebsd linux nacl netbsd openbsd solaris windows
7 package signal
9 import (
10 "os"
11 "syscall"
14 // In assembly.
15 func signal_disable(uint32)
16 func signal_enable(uint32)
17 func signal_recv() uint32
19 func loop() {
20 for {
21 process(syscall.Signal(signal_recv()))
25 func init() {
26 signal_enable(0) // first call - initialize
27 go loop()
30 const (
31 numSig = 65 // max across all systems
34 func signum(sig os.Signal) int {
35 switch sig := sig.(type) {
36 case syscall.Signal:
37 i := int(sig)
38 if i < 0 || i >= numSig {
39 return -1
41 return i
42 default:
43 return -1
47 func enableSignal(sig int) {
48 signal_enable(uint32(sig))
51 func disableSignal(sig int) {
52 signal_disable(uint32(sig))