ビジーウェイト
条件が成立するか、十分な時間が経つまで、何も生産しないループをプロセッサに回し続けることで待つ方式。
ファームウェアで最も古い遅延手法は for (i = 0; i < 100000; i++); である。これには古典的な落とし穴が二つある。カウンタが volatile でなければ、最適化によってループごと削除されること。そしてクロック周波数やコンパイラオプションが変わった瞬間に、遅延時間が狂うことである。Linuxは起動時に遅延ループを較正しており、その値がBogoMIPSとして表示される。
ドライバ内の数マイクロ秒程度の短い待ちなら、ビジーウェイトが正解であることも多い。スリープして復帰するコストのほうが、待ち時間そのものより大きいからだ。それより長い待ちには、他のタスクを動かせるタイマーや RTOS の呼び出しが向く。スピンロックは、ロックの解放を条件にしたビジーウェイトにほかならない。