北海道苫小牧市出身の初老PGが書くブログ

永遠のプログラマを夢見る、苫小牧市出身のおじさんのちらしの裏

worker MPM と ithreads

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 はあまり好評じゃないみたいですねえ・・・。