worker MPM + mod_perl2 のおはなしです。
MyPackage.pm の中に、
use threads::shared; our $counter : shared = 0;
なんて書いておいて、スレッド間でカウンタを共有しようと思ったんですが、どうも動かないみたいなんです。worker MPM + mod_perl2 で変数をshared にはできないのかなーと思っていたら、よくまとまっているエントリを見つけました。
であるが,変数の共有をするためには「親インタプリタ」で変数が定義されていないといけない
さよですか。ってことで、 httpd.conf でMyPackage をロードさせる設定を書いてみました。
PerlSwitches -I/path/to/perl_lib PerlModule MyPackage;
おお、共有されるようになりました。なるほどねー。しかし、先ほどのエントリ見る限りはworker MPM + mod_perl2 はあまり好評じゃないみたいですねえ・・・。