
Hi, I am using boost::interprocess::named_condition to synchronize 1-to-many communication. The reading processes are waiting on a named_condition that indicates the possibility to read. Problem is now that they wait until doomsday if no one triggers notify. So they can't quit the reading process themselves. Now I am thinking about using timed_wait instead of wait. That means checking some other exit-condition periodically. The question is now if the reader can miss the notify while he is checking that exit-condition? This is crucial to me because the readers have to notice new data in a shared memory segment. Thanks in advance. Problematic code: named_upgradable_mutex mtx; named_condition cond; { sharable_lock<named_upgradable_mutex> lock(mtx); while(true) { read(); cond.wait(lock); } } Possible solution?: named_upgradable_mutex mtx; named_condition cond; { sharable_lock<named_upgradable_mutex> lock(mtx); while(true) { read(); while (true) { if (cond.timed_wait(lock, 1 second)) break; else check_for_thread_interruption() } } }