Is the goal of this to avoid a lock if we're being called in the initializer thread? That's fine, but one bad aspect is that the initThread variable keeps pointing to that thread and might prevent GC. We should set initThread = null when we're done.