ThreadCritical::initialize is called from os::init, before that the acual mutex calls are short-circuited on Solaris.
If ThreadCritical is used after the call to initialize but before os::init_2 then os::Solaris::_mutex_lock is still uninitialized and we crash.
If ThreadCritical is used after the call to initialize but before os::init_2 then os::Solaris::_mutex_lock is still uninitialized and we crash.