

#include <nitro/os.h>
void OS_SignalEvent(
OSEvent* event,
u32 setPattern );
| event | イベント構造体へのポインタです。 |
| setPattern | セットするイベントフラグのビットパターンです。 |
なし。
イベントを発生してイベント待ちのスレッドにシグナルします。
event はイベント構造体へのポインタで、この構造体のメンバであるイベントフラグに対し、setPattern で示すビットをセットします。その結果、イベント待ちをしているスレッドへと実行権がうつる可能性があります。
内部では、イベントフラグを変更した後、event に登録されているイベント待ちスレッドをすべて一旦 OS_WakeupThread() によって待機状態から実行可能状態へと変更します。そして各スレッドは終了条件を満たしていればそのまま実行可能状態となりますが、終了条件を満たしていなければ再び
OS_SleepThread() で待機状態となる、という動作になっています。
OS_InitEvent, OS_WaitEvent*, OS_Clear*Event, OS_PollEvent*, OS概要(イベント)
2007/12/04 初版