シングルトンについて
結論から言うとDouble Checked Lock使う場合はメモリバリアを入れなさいと。
そうでないならThread Local Storageを使って実装しなさいなのですねー。
[参考1]The "Double-Checked Locking is Broken" Declaration
[参考2]Binary Hacks ―ハッカー秘伝のテクニック100選この本にC++(gcc)のコード例が載ってます。
結論から言うとDouble Checked Lock使う場合はメモリバリアを入れなさいと。
そうでないならThread Local Storageを使って実装しなさいなのですねー。
[参考1]The "Double-Checked Locking is Broken" Declaration
[参考2]Binary Hacks ―ハッカー秘伝のテクニック100選この本にC++(gcc)のコード例が載ってます。