D言語 Part26
レス数が950を超えています。1000を超えると書き込みができなくなります。
0982デフォルトの名無しさん
2011/04/19(火) 19:42:04.08複数のスレッドからA.instance()を呼び出す際に、
ちょくちょくセグメンテーション違反で落っこちます。
static変数はスレッドセーフと思ってましたが、
根本的に何か間違っているでしょうか?
class A {
B[] b;
static A instance() {
static A a;
if(a is null) {
a = new A();
}
a.update();
return a;
}
void update() {
B[] tmp;
// 外部ファイルの更新チェック、読込み等。で、だいたいこの辺で落ちる
synchronized(this) {
b = tmp;
}
}
}
class B {}
レス数が950を超えています。1000を超えると書き込みができなくなります。