-
twai_sem
-
ER twai_sem ( ID semid, TMO tmout );
semidで指定されたセマフォから資源を獲得(セマフォ・カウンタから1を減算)します。
ただし,本サービス・コールを発行した際,対象セマフォから資源を獲得することができなかった(空き資源が存在しなかった)場合には,資源の獲得は行わず,自タスクを対象セマフォの待ちキューにキューイングしたのち,RUNNING状態からタイムアウト付きのWAITING状態(資源獲得待ち状態)へと遷移させます。
なお,資源獲得待ち状態の解除は,以下の場合に行われます。
備考1 自タスクを対象セマフォの待ちキューにキューイングする際のキューイング方式は,
セマフォの生成時に指定した順(FIFO順または現在優先度順)に行われます。
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- CPUロック状態から本サービス・コールを発行した。
- ディスパッチ禁止状態から本サービス・コールを発行した。
- 「PSW.IPL > カーネル割り込みマスクレベル」の状態から本サービス・コールを発行した。
|
|
|
- スタック・ポインタが呼出しタスクのユーザ・スタック領域の範囲外を指している。
|
|
|
|
|
|
|
|
|
|
|
|
|