Busy waiting
Wachten door de processor in een nutteloze lus te laten draaien totdat aan een voorwaarde is voldaan of er genoeg tijd is verstreken.
De oudste vertraging in firmware is for (i = 0; i < 100000; i++);. Daar kleven twee klassieke fouten aan: de optimizer verwijdert de lus gewoon, tenzij de teller volatile is, en de vertraging klopt niet meer zodra iemand de kloksnelheid of de compilervlaggen aanpast. Linux kalibreert zijn wachtlus bij het opstarten — dat getal wordt als BogoMIPS afgedrukt.
Voor korte wachttijden, een paar microseconden in een driver, is busy waiting vaak de juiste keuze: slapen en weer wakker worden kost meer dan het wachten zelf. Voor langere tijden is een timer of een RTOS-aanroep die andere taken laat doorlopen beter. Een spinlock is niets anders dan busy waiting met een slot als voorwaarde.