fixed wrong have message, fixed redundant mutexes use