bionic (9) PHOLD.9freebsd.gz

Provided by: freebsd-manpages_11.1-3_all bug

NAME

     PHOLD — hold a process

SYNOPSIS

     #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);

DESCRIPTION

     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.

AUTHORS

     This manual page was written by Mark Johnston <markj@FreeBSD.org>.