Consider what happens if RenderManager::GetInstance() is called from somewhere inside of RenderManager's constructor.
Even without the mutex, wouldn't that be likely to be a pretty bad idea?
In the best case, GetInstance would return a half-way constructed RenderManager, in the worst case, it would become an infinite recursion.
Is it even defined in C++ what would happen? (I have no idea, if someone knows, please do tell :) )
I guess the question is, will the return-value from "new" be assigned before or after the constructor is run?
My unqualified guess is "after" which would mean an infinite recursion.