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.
[glossary]
[Reference(s) to this entry by made by: {deadly embrace}{livelock}{wedged}]