Display Held Tokens )HOLDS

System command )HOLDS displays a list of tokens which have been acquired or requested by the :Hold control structure.

Each line of the display is of the form:

token:  acq  req  req ...

Where acq is the number of the thread that has acquired the token, and req is the number of a thread which is requesting it. For a token to appear in the display, a thread (and only one thread) must have acquired it, whereas any number of threads can be requesting it.


Thread 300’s attempt to acquire token 'blue' results in a deadlock:

Sema4[1] :Hold 'blue'
blue:   100
green:  200     100
red:    300     200     100

The following cycle of dependencies has caused the deadlock:

Thread 300 attempts to acquire blue,      300 → blue
which is owned by 100,                     ↑      ↓
which is waiting for red,                 red ←  100
which is owned by 300.