PHOLD —
hold a
process
#include
<sys/proc.h>
PHOLD(
struct
proc *p);
_PHOLD(
struct
proc *p);
PRELE(
struct
proc *p);
_PRELE(
struct
proc *p);
PROC_ASSERT_HELD(
struct
proc *p);
PROC_ASSERT_NOT_HELD(
struct
proc *p);
The
PHOLD() macro increments the hold count of a
process, and the
PRELE() macro decrements the
hold count of a process.
If a process with a non-zero hold count attempts to exit, it will sleep until
its hold count has reached zero before the kernel begins releasing resources
associated with the process. Once a process has started exiting, it is invalid
to increase its hold count. Thus, callers must not attempt to hold a process
that has the
P_WEXIT
flag set. The VM
daemon will not swap out the kernel stack of a thread belonging to a process
with a non-zero hold count.
The
_PHOLD() and
_PRELE() macros are identical to
PHOLD() and
PRELE(),
except that they must be called with the process lock held.
This manual page was written by
Mark Johnston
<
[email protected]>.