id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 8799,named condition notify_all does not wake up waiting process,peter.knafl@…,Ion Gaztañaga,"The underlying snippet never catches the notify_all() signal. Operating System used is Linux 3.5.0-17-generic. Can anybody confirm this as a bug or am I doing something wrong? === Code snippet === {{{ #include #include #include #include #include #include #include #include #include using namespace std; using namespace boost::interprocess; void* consumer(void*) { cout << ""Started child"" << endl; named_mutex mtx(create_only, ""somemutex""); named_condition signal_empty (create_only, ""signal_empty""); for(;;) { cout << ""Child tries to lock"" << endl; scoped_lock lock(mtx); cout << ""Child got lock and waits"" << endl; signal_empty.wait(lock); cout << ""Child WOKE up"" << endl; } cout << ""Finished child"" << endl; } void* producer(void*) { cout << ""Started parent"" << endl; sleep(1); named_mutex mtx(open_only, ""somemutex""); named_condition signal_empty (open_only, ""signal_empty""); for(;;) { cout << ""Parent tries to get lock"" << endl; scoped_locklock(mtx); cout << ""Parent got lock and notifies"" << endl; sleep(1); cout << ""Parent notifies child"" << endl; signal_empty.notify_all(); } } int main(int argc, char** argv) { pid_t pid = fork(); if(pid == 0) { consumer(NULL); } else { producer(NULL); } } }}} === Application output === {{{ Started parent Started child Child tries to lock Child got lock and waits Parent tries to get lock Parent got lock and notifies Parent notifies child Parent tries to get lock Parent got lock and notifies ..... }}}",Bugs,new,To Be Determined,interprocess,Boost 1.53.0,Problem,,named_condition notify_all,peter.knafl@…