We’re well into tangent territory here, but essentially the external initialization means you’re introducing a race condition on that initialization. You probably know this already, because unless you have a really well built framework protecting you, I’d bet dollars to doughnuts this has caused trouble for you.
We’ve got some code that does this (dependency on a database), and you have to be very careful how you access them to avoid issues. It’s absolutely a race condition, regardless of it it’s changed once the initialization is complete.
Also: I think you may have posted to the wrong thread. Was this supposed to be here?