Я немного смущен о роли std::unique_lock при работе с std::condition_variable. Насколько я понял документацию , std::unique_lock - это в основном раздутый замок, с возможностью обмена состояния между двумя замками.
Я до сих пор использовал pthread_cond_wait(pthread_cond_t *cond, pthread_mutex_t *mutex) для этой цели (я думаю, что STL использует в posix). Он принимает мьютекс, а не блокировку.
Какая разница здесь? Является ли тот факт, что std::condition_variable имеет дело с std::unique_lock оптимизацией? Если да, то как именно быстрее?