ファイルロック

今頃気づくのは遅すぎだが、D言語の標準ライブラリ(phobos)には、明示的なファイルロックの処理がない。
stream.dのFileクラスで試したところ、Win32版ではReader/Writer Lockは行っているが、ロックできないと即時で例外が飛んでくる。linux版にいたってはロックすら行っていない。
一瞬、最近のopen(2)はflock(2)も兼ねているのか?と思ったが、違うらしい。
すごく萎えた。

現在、作り直しためにタスクの基底クラスを作っているので、ついでに文字列IDでのセマフォクラスを作って、ファイルロックに使えば、ある程度自分で信頼できるポータブルなファイルロックができるなーと一瞬思ったが、同一プロセス内でしかロックできないのでダメだ。

UNIXflock(2)でLOCK_NBフラグ無しな感じやつが欲しいの。