前記事から Read/Write Lock のセマフォを使った実装を紹介しています( 記事はこちら )。 さて、前回の実装は Reader が優先される実装になっていて、複数の Reader が絶え間なくアクセスすると Writer は延々と待たされるというものでした。この問題を回避するために、今回は、たまにしか発生しない Writer のアクセスを優先的に処理させるということを考えます。 Writer 優先の Read/Write Lock を実現するために、ここでは2種類のセマフォ操作を行います。まずはセマフォの初期化部分です(今回もあえてC風)。 enum access_t { ReadersWriter, WaitingWriters }; static const short MaxReaders = 100; int semid = semget(IPC_PRIVATE, 2,