2008年6月18日 (水曜日)

00:00:20 # Life DCLパターン。 革命の日々でとりあげられていて、ちょうどそんなコードを書いていたような気がしたので 恥ずかしくて確認。 cowdancer の初期化部分で複数のスレッドがあったとしても初期化 は一回だけにしておきたい、という部分でそれっぽいコードを利用していることに気がついてしまいました。 しかし自分で書いたコードだけどなんか複雑なことをしている。 「initialized」というフラグ(static volatile)が存在していて、 三つの値をとれるようになっています。 (0: 初期化されていない、1:誰かが初期化しようとしているかもしれない、2:初期化完了している。) 眺めてみたけどなんとなくうまくいきそうな気がする。 pthreadを使っていないのはpthreadを使っていないバイナリから呼び出された場合とそうでない場合で別のコードにするのがめんどいから。 厳密に処理していないのは、実は初期化コードは二回以上実行されてもかまわないから。 ということでこのままでも別によいのかもしれず。

Junichi Uekawa

$Id: dancer-diary.el,v 1.92 2007/08/30 21:46:09 dancer Exp $