It's not:

1. I can call LockedPageManager::Instance() in main, before any threads begin, or

2. I can put a mutex inside the if statement (so that usually the lock isn't hit) and double-check for null once the lock is acquired.  That should keep the performance sane (in the common case) and take care of the race condition.

Which is better/preferred?