理想のRTOSを自作する (8)

【セマフォ管理クラス】

セマフォ操作を管理する。

【修正】
2021-02-26
カウント値を制限できるように改良。制限値を1にするとイベント・フラグと同じ動作にすることができる。

【概要】

セマフォを生成する。カウント初期値(init、省略時はゼロ)が指定可能。リミット(limit)は、カウント最大値を指定する。ゼロ指定はカウント変数の最大値までとなる。省略時はゼロ。

セマフォを獲得する。成功するとWAIT_OBJECTを返す。獲得できない場合、マイナスのタイムアウト指定では永久に待ち続け、ゼロ指定ではWAIT_TIMEOUTを即座に返す。1以上の指定時はその指定時間後にWAIT_TIMEOUTを返す。

セマフォを解放する。待ち状態にあるタスクがセマフォを獲得する。カウントアップできるとtrue、制限値によりカウント・アップできなかった場合はfalseを返す。

【ソース・コード】

【関連する投稿】
理想のRTOSを自作する (1)
理想のRTOSを自作する (2)
理想のRTOSを自作する (3)
理想のRTOSを自作する (4)
理想のRTOSを自作する (5)
理想のRTOSを自作する (6)
理想のRTOSを自作する (7)
理想のRTOSを自作する (8)
理想のRTOSを自作する (9)
理想のRTOSを自作する (10)
理想のRTOSを自作する (11)