remove extraneous MutexAutoLock that isn't doing anything
try keeping mMutex unlocked for the else statement