-
twai_sem
-
ER twai_sem ( ID semid, TMO tmout );
|
semidで指定されたセマフォから資源を獲得(セマフォ・カウンタから0x1を減算)します。
ただし,本サービス・コールを発行した際,対象セマフォから資源を獲得することができなかった(空き資源が存在しなかった)場合には,資源の獲得は行わず,自タスクを対象セマフォの待ちキューにキューイングしたのち,RUNNING状態からタイムアウト付きのWAITING状態(資源獲得待ち状態)へと遷移させます。
なお,資源獲得待ち状態の解除は,以下の場合に行われ,資源獲得待ち状態からREADY状態へと遷移します。
備考1 自タスクを対象セマフォの待ちキューにキューイングする際のキューイング方式は,コンフィギュレーション時に定義された順(FIFO順,優先度順)に行われます。
|
|
|
|
|
|
|
|
待ち時間の指定が不正( tmout<TMO_FEVR)である
|
|
|
|
|
|
- CPUロック状態から本サービス・コールを発行した
- ディスパッチ禁止状態から本サービス・コールを発行した
|
|
|
|
|
|
|
|
|
|