Aktywne oczekiwanie (busy waiting)
Oczekiwanie polegające na kręceniu procesora w pętli, która nie robi nic pożytecznego, dopóki nie spełni się warunek albo nie upłynie dość czasu.
Najstarsze opóźnienie w firmware to for (i = 0; i < 100000; i++);. Ma dwa klasyczne błędy: optymalizator usuwa taką pętlę w całości, chyba że licznik jest volatile, a opóźnienie przestaje być poprawne w chwili, gdy ktoś zmieni częstotliwość zegara albo flagi kompilatora. Linux kalibruje pętlę opóźniającą przy starcie — ta liczba to właśnie wypisywane BogoMIPS.
Przy krótkich oczekiwaniach, rzędu kilku mikrosekund w sterowniku, aktywne oczekiwanie jest często dobrym wyborem: uśpienie i obudzenie kosztuje więcej niż samo czekanie. Przy dłuższych lepszy jest timer albo wywołanie RTOS-a, które pozwala działać innym zadaniom. Spinlock to nic innego jak aktywne oczekiwanie, w którym warunkiem jest blokada.