from
The Free On-line Dictionary of Computing (8 July 2008)
deadlock
deadly embrace
<parallel, programming> A situation where 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 waiting for output from a server
while the server is waiting for more input from the
controlling program before outputting anything. It is
reported that this particular flavour 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 flavour 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}.
Another example, common in {database} programming, is two
processes that are sharing some resource (e.g. read access to
a {table}) but then both decide to wait for exclusive
(e.g. write) access.
The term "deadly embrace" is mostly synonymous, though usually
used only when exactly two processes are involved. This is
the more popular term in Europe, while {deadlock} predominates
in the United States.
Compare: {livelock}. See also {safety property}, {liveness
property}.
[{Jargon File}]
(2000-07-26)