VisualWorks(Smalltalk)でのスレッドセーフなシングルトンの生成について
1つしかないインスタンスを生成するメソッド(currentやdefault)を見ると,
Someting class >> current current isNil ifTrue:[current := Something new]. ^current
という感じの記述を見かけるんだけど,これスレッドセーフじゃないよね.
Someting class >> install self initialize Someting class >> initialize current := Someting new.
として,あらかじめ作っておいて
Someting class >> current ^current
だとスレッドセーフになるかな?