condvar->wait() can handle recursive mutex