Fix singleton object created on temporary thread

This causes a deadlock on the second assignment received that uses SoundCache (thread() == 0x00)