LIVELOCK DEFINITION

parallel) / livelock - /li:v'lok/ When two or more processes continuously change their state in response to changes in the other process(es) without doing any useful work.
This is similar to deadlock in that no progress is made but differs in that neither process is blocked or waiting for anything.
A human example of livelock would be two people who meet face-to-face in a corridor and each moves 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.

livelock: /li:v´lok/, n.

A situation in which some critical stage of a task is unable to finish because its clients perpetually create more work for it to do after they have been serviced but before it can clear its queue. Differs from deadlock in that the process is not blocked or waiting for anything, but has a virtually infinite amount of work to do and can never catch up.

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.

deadly embrace: n.

Same as deadlock, 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.

death code: n.

A routine whose job is to set everything in the computer — registers, memory, flags, everything — to zero, including that portion of memory where it is running; its last act is to stomp on its own “store zero” instruction. Death code isn't very useful, but writing it is an interesting hacking challenge on architectures where the instruction set makes it possible, such as the PDP-8 (it has also been done on the DG Nova).

Perhaps the ultimate death code is on the TI 990 series, where all registers are actually in RAM, and the instruction “store immediate 0” has the opcode “0”. The PC will immediately wrap around core as many times as it can until a user hits HALT. Any empty memory location is death code. Worse, the manufacturer recommended use of this instruction in startup code (which would be in ROM and therefore survive).

stomp on: vt.

To inadvertently overwrite something important, usually automatically. “All the work I did this weekend got stomped on last night by the nightly server script.” Compare scribble, mangle, trash, scrog, roach.