PMutex is a mutex when threading is possible, and a dummy mutex-like object (that doesn't do anything) otherwise.