mongodb, чтобы оно не создавало по треду на клиентское соединение. Очередь, пул воркеров, все работает. Сделано примитивно, и вот захотелось, чтобы работало побыстрее, ну и еще немного функционала добавить. Придумалась конструкция на основе нескольких boost::lockfree::queue (сложности связаны с тем, что запросы не всегда можно отдавать произвольному воркеру и иногда приходится сериализовать), но если у воркера нет работы, то нужно же на чем-то ждать. Нужен семафор, просто семафор. Но тут я обнаруживаю, что семафоры нынче не в моде, и их ото всюду выпилили. Из boost::threads в частности. Устраивать conditional variable, под мютексом у которой не будет ничего, вроде глупо. Как правильно поступать в такой ситуации?
интернеты говорят, что не глупо.
рекомендую покопать boost::asio
Обсуждают сегодня