じゃあ、外側のif(!instance) {は安全。
Lockにコスト掛かるならそれでいいよ。
それとLock中にinstanceをどう扱おうがメモリバリアは不要。
つまりtmp不要。