KPREEMPT(9) | Kernel Developer's Manual | KPREEMPT(9) |
kpreempt
—
#include <sys/systm.h>
void
kpreempt_disable
(void);
void
kpreempt_enable
(void);
bool
kpreempt_disabled
(void);
On architectures where kernel preemption is not supported natively, these functions may still be used.
It should be noted that kernel preemption is also disabled when holding the interrupt priority level above IPL_NONE, e.g. using spl(9) or spinning mutex(9) calls or holding kernel_lock (indicating that the code is not MT safe).
kpreempt_disable
() disables kernel
preemption of the calling LWP. Note that disabling kernel preemption can
prevent LWPs with higher priorities from running.
kpreempt_enable
() enables kernel
preemption of the calling LWP, which was previously disabled by
kpreempt_disable
().
kpreempt_disable
() and
kpreempt_enable
() can be nested.
kpreempt_disabled
() returns
true
if preemption of the calling LWP is disabled.
It is only for diagnostic purpose.
February 16, 2010 | NetBSD 9.2 |