Provided by: freebsd-manpages_12.2-1_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>.

Debian                                          November 7, 2015                                        PHOLD(9)