Обьясние, пожалуйста, логику работы объекта синхронизации boost::condition. Прочитал доки, которые предлагает boost, там описано только приминение. Так же обсуждают недостатки event и якобы аналог ему — condition. Не пойму зачем в него передавать Mutex или lock
lock lk(monitor);
while (buffered == circular_buf.size())
buffer_not_full.wait(lk); ???????