In
software engineering,
busy-waiting,
busy-looping or
spinning is a technique in which a
process repeatedly checks to see if a condition is true, such as whether
keyboard input or a
lock is available. Spinning can also be used to generate an arbitrary time delay, a technique that was necessary on systems that lacked a method of waiting a specific length of time. Processor speeds vary greatly from computer to computer, especially as some processors are designed to dynamically adjust speed based on external factors, such as the load on the operating system. As such, spinning as a time delay technique often produces unpredictable or even inconsistent results unless code is implemented to determine how quickly the processor can execute a "do nothing"
loop, or the looping code explicitly checks a
real-time clock.