diff options
Diffstat (limited to 'src/pkg/runtime/sigqueue.go')
| -rw-r--r-- | src/pkg/runtime/sigqueue.go | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/pkg/runtime/sigqueue.go b/src/pkg/runtime/sigqueue.go new file mode 100644 index 0000000000..5976e57352 --- /dev/null +++ b/src/pkg/runtime/sigqueue.go @@ -0,0 +1,42 @@ +// 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. + +// This file implements runtime support for signal handling. + +package runtime + +func signal_recv() (m uint32) { + for { + mp := acquirem() + onM(&signal_recv_m) + ok := mp.scalararg[0] != 0 + m = uint32(mp.scalararg[1]) + releasem(mp) + if ok { + return + } + gonotetsleepg(&signote, -1) + gonoteclear(&signote) + } +} + +func signal_enable(s uint32) { + mp := acquirem() + mp.scalararg[0] = uint(s) + onM(&signal_enable_m) + releasem(mp) +} + +func signal_disable(s uint32) { + mp := acquirem() + mp.scalararg[0] = uint(s) + onM(&signal_disable_m) + releasem(mp) +} + +var ( + signal_recv_m, + signal_enable_m, + signal_disable_m mFunction +) |
