Synchronization Primitives

This section describes dcmds and walkers used to examine particular
kernel synchronization primitives. The semantics of each primitive are discussed
in the corresponding (9f) section of the manual pages.

dcmds

rwlock::rwlock

Given the address of a readers-writers
lock (see rwlock(9F)),
display the current state of the lock and the list of waiting threads.

address::sobj2ts

Convert the address
of a synchronization object to the address of the corresponding turnstile
and print the turnstile address.

[ address ] ::turnstile

Display the properties of the specified turnstile_t.
If no turnstile_t address is specified, the dcmd
displays the properties of all turnstiles.

[ address ] ::wchaninfo [-v]

Given the address of a condition variable (see condvar(9F)) or semaphore
(see semaphore(9F)),
display the current number of waiters on this object. If no explicit address
is specified, display all such objects that have waiting threads. If the -v option is specified, display the list of threads that are blocked
on each object.

Walkers

blocked

Given the address of a synchronization object (such as a mutex(9F)
or rwlock(9F)),
iterate over the list of blocked kernel threads.

wchan

Given the address of a condition variable (see condvar(9F)) or semaphore
(see semaphore(9F)),
iterate over the list of blocked kernel threads.