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
The VM daemon will not swap out the kernel stack of a thread belonging to a
process with a non-zero hold count.
macros are identical to
except that they must be called with the process lock held.