С++ 11 имеет std:: condition_variable, его функция ожидания
template< class Predicate >
void wait( std::unique_lock<std::mutex>& lock, Predicate pred );
Для этого требуется мьютекс.
Насколько я понимаю - его notify_one можно вызывать без синхронизации (я знаю, что идиоматический способ - использовать его с мьютексом).
У меня есть объект, который уже внутренне синхронизирован, поэтому мне не нужен мьютекс, чтобы защитить его. Один поток должен ждать некоторого события, связанного с этим объектом, и другие будут уведомлены.
Как сделать такое уведомление без мьютекса в С++ 11? То есть это легко сделать с условием_переменный, но ему нужен мьютекс. Я думал об использовании поддельного типа мьютекса, но std:: mutex прибивается в интерфейсе ожидания.
Опция заключается в опросе std:: atomic_flag + sleep, но мне не нравится спать.