人間とウェブの未来(旧) 「ウェブの歴史は人類の歴史の繰り返し」という観点から色々勉強しています。2014年までの人間とウェブの未来の旧ブログです。 apacheモジュールでプロセス間通信を行う場合に、共有メモリを使うと色々問題がでてくる。 preforkの性質上、複数のapache子プロセスがフォークされており、それらがそれぞれリクエストに対する処理を行うため、共有メモリ領域の書き込み時に衝突が起きたりして、データに齟齬が発生してくる。 それを防ぐのが排他処理だ。 今回は、aprで実装済みのglobal mutexを使って排他制御する方法を説明する。 まずは、グローバでmutexを宣言する。 #include "apr_global_mutex.h" #include "unixd.h" apr_global_mutex_t *mutex; 次に、apache起動時のpost_confi
![apacheモジュールでmutexを使った排他制御を実装](https://cdn-ak-scissors.b.st-hatena.com/image/square/20055b87c1319bbab4dd70f645c3ca0c21e77ef6/height=288;version=1;width=512/https%3A%2F%2Fblog.matsumoto-r.jp%2Fwp-content%2Fuploads%2F2014%2F08%2FIMG_4996.jpg)