

#include <nitro/os.h>
u32 OS_EnableScheduler( void );
なし。
スケジューラの動作抑制を解除した後の、内部カウンタ値です。
この値が 0 より大きい場合、まだスケジューラ動作が抑制されていることを示します。
スレッドシステムのスケジューラの動作抑制を解除します。すなわち、 リスケジューリングを再開します。
スレッドシステムのスケジューラの動作が抑制されていると、OS_WakeupThread() や OS_SetThreadPriority() など、スレッドのリスケジュールが発生する可能性のある関数が呼ばれても、スレッドのリスケジュールが行なわれないようになります。
この OS_EnableScheduler() は、通常 OS_DisableScheduler() に対してペアで使用されます。
OS_DisableScheduler() や OS_EnableScheduler() は、割り込みを禁止状態にして呼び出してください。
スケジューラは内部でカウンタを持っています。通常は 0 であるそのカウンタは、OS_DisableSchrduler() で 1 カウント増加し、OS_EnableSchduler() で 1 カウント減少します。そして、0 より大きい場合にはリスケジュールしないようにします。本関数からの戻り値はカウンタを変更した後の値です。0
より大きい場合、まだリスケジュールしない状態です。
OS_DisableScheduler() と OS_EnableScheduler() のペアをネストさせる(入れ子構造にする)ことが出来ます。例は OS_DisableScheduler() のリファレンスマニュアルを参照してください。
OS_SelectThread, OS_RescheduleThread, OS_DisableScheduler
2005/03/08 用語統一 [割込み] → [割り込み]
2005/01/21 初版