PHPでのflockについてこの前調べた。で、PHPはセッションデータをどのように永続化するのかについてモジュール化できるようになっている。これをセッションハンドラモジュールと呼称しておく。PHPはファイルに保存して永続化するファイルモジュールと、ユーザー定義 関数によりPHPスクリプトレベルで永続化処理を自由に実装可能なユーザー関数モジュールの二つをデフォルトで提供している。このうちflock()が影響するのはファイルモジュールである。これがどうなっているのか気になって、調査した。 先に結論を述べる。 ファイルモジュールはsession_start()の呼び出しによりファイルにflock()による排他ロックを取得し、session_destroy()あるいはリクエスト処理の完了時などにclose()(Win32においては明示的にflock(LOCK_UN))を行い排他ロックを解除している