DOKK / manpages / debian 10 / freebsd-manpages / PROC_ASSERT_NOT_HELD.9freebsd.en
PHOLD(9) Kernel Developer's Manual PHOLD(9)

PHOLDhold 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 () macro increments the hold count of a process, and the () 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 () and () 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 <markj@FreeBSD.org>.

November 7, 2015 Debian