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 freebsd linux openbsd netbsd
12 extern SigTab runtime_sigtab
[];
20 // First call: basic setup.
21 for(i
= 0; runtime_sigtab
[i
].sig
!= -1; i
++) {
22 t
= &runtime_sigtab
[i
];
23 if((t
->flags
== 0) || (t
->flags
& SigDefault
))
25 runtime_setsig(i
, false, true);
30 runtime_sigenable(uint32 sig
)
35 for(i
= 0; runtime_sigtab
[i
].sig
!= -1; i
++) {
36 // ~0 means all signals.
37 if(~sig
== 0 || runtime_sigtab
[i
].sig
== (int32
)sig
) {
38 t
= &runtime_sigtab
[i
];
39 if(t
->flags
& SigDefault
) {
40 runtime_setsig(i
, false, true);
41 t
->flags
&= ~SigDefault
; // make this idempotent
48 runtime_resetcpuprofiler(int32 hz
)
52 runtime_memclr((byte
*)&it
, sizeof it
);
54 runtime_setitimer(ITIMER_PROF
, &it
, nil
);
55 runtime_setprof(false);
57 it
.it_interval
.tv_sec
= 0;
58 it
.it_interval
.tv_usec
= 1000000 / hz
;
59 it
.it_value
= it
.it_interval
;
60 runtime_setitimer(ITIMER_PROF
, &it
, nil
);
61 runtime_setprof(true);
63 runtime_m()->profilehz
= hz
;