let condvar has its own mutex