[Apache] モジュールのApache1.3からApache2.0への移植2 - 悩み中

Apacheモジュール プログラミングガイド (Advanced Server‐side programmingシリーズ)を読んでいて気づいたのですが、Apache2からは、モジュールがスレッドセーフでないといけないらしい。
つまりstatic変数などに何かを格納している場合は、変数へのアクセスはアトミックに行わないといけないのだ。
まぁこれはMutexなり何なりを使えばよいのでたいした問題ではない。


問題は、1.3系で作っていたモジュールが、同一モジュール内の違うフェーズ同士で情報の共有にグローバル変数を利用していたことだ。
つまり同一プロセス内の異なるリクエスト同士で変数を共有してしまうのだ。
これはまずい・・・。
これをどうしようかと迷っている。
tableに格納するのが良いのかなぁ。
tableは r->poolに作成されることを考えると、同一プロセス内の違うリクエスト同士では例えキーが同じでもかぶることはないような気がするんだけどなぁ。
r1->pool == r2->pool だったりしたら嫌だなぁ。


追記:r->notesに保存すればよいのではないか?と思っている。


さらにモジュールから使用するライブラリもスレッドセーフであるかどうか気をつけなければいけない。