deadlock: n. 1. [techspeak] A situation wherein two or more
processes are unable to proceed because each is waiting for one of
the others to do something. A common example is a program
communicating to a server, which may find itself waiting for output
from the server before sending anything more to it, while the server
is similarly waiting for more input from the controlling program
before outputting anything. (It is reported that this particular
flavor of deadlock is sometimes called a `starvation deadlock',
though the term `starvation' is more properly used for situations
where a program can never run simply because it never gets high
enough priority. Another common flavor is `constipation', in which
each process is trying to send stuff to the other but all buffers
are full because nobody is reading anything.) See deadly embrace.
2. Also used of deadlock-like interactions between humans, as when
two people meet in a narrow corridor, and each tries to be polite by
moving aside to let the other pass, but they end up swaying from
side to side without making any progress because they always move
the same way at the same time.