Linux Programming(semaphore)

セマフォの実装について

基本はPOSIXのサービスを使う

sem_open/sem_close (Named semaphore)
sem_init/sem_delete (Unnamed semaphore)

NamedにするとProcess間で使用可能、UnnamedだとProcess跨げないらしい。

Namedのほうがいいようにも見えるけど、/dev/shm/ に何やら残骸が残ってしまう。

しかも残った後はO_EXCLでオープンできてしまう。

なんだかシステムとして予期しないバグになりそうで怖い。

Unnamedにすべきかなぁ。。。

(動作テスト結果)

  • Closeしなくても、次のOpen(O_CREAT)でエラーにはならない。
  • 逆にunlinkした後でもOpen(O_EXCL)はできている。
  • unlinkは名前でアクセスなので、使いにくい。なくても問題は出ない様子??
カテゴリー: JOB タグ: , , , パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です