this does not always work, as the process may not be responding to signals or the processor may be in an uninterruptible state, such as in the Cyrix coma bug (caused by overlapping uninterruptible instructions in an instruction pipeline). In some cases other signals such as SIGKILL can work, as they do not require the process to be responsive, while in other cases the loop cannot be terminated short of system shutdown. Language support Infinite loops can be implemented using various control flow constructs. Most commonly, in unstructured programming this is jump back up (goto), while in structured programming this is an indefinite loop (while loop) set to never end, either by omitting the condition or explicitly setting it to true, as while (true) .... Some languages have special constructs for infinite loops, typically by omitting the condition from an indefinite loop. Examples include Ada (loop ... end loop), Fortran (DO ... END DO), Go (for { ... }), Ruby (loop do ... end), and Rust (loop { ... }). Examples of intentional infinite loops A simple example (in C): #include <stdio.h> int main() { for (;;) // or equivalently, while (1) ; return 0; } The form for (;;) for an infinite loop is traditional, appearing in the standard reference The C Programming Language, and is often punningly pronounced "forever". This is a loop that will print "Infinite Loop" without halting. A similar example in 1980s-era BASIC: 10 PRINT "INFINITE LOOP" 20 GOTO 10 A similar example in DOS batch files: :A echo Infinite Loop goto :A Here the loop is quite obvious, as the last line unconditionally sends execution back to the first. An example in Java while (true) { System.out.println("Infinite Loop"); } An example in Bourne Again Shell for ((;;)); do echo "Infinite Loop" done An example in Rust loop { println!("Infinite loop"); } Examples of unintentional infinite loops Mathematical errors Here is one example of an infinite loop in Visual Basic: dim x as integer do while x < 5 x = 1 x = x + 1 loop This creates a situation where x will never be greater than 5, since at the start of the loop code x is given the value of 1, thus, the loop will always end in 2 and the loop will never break. This could be fixed by moving the x = 1 instruction outside the loop. Essentially what