void producer(the_ostream &mos, boost::sync_queue<int> & sbq) { using namespace boost; try { for(int i=0; ;++i) { sbq.push_back(i); //sbq << i; mos << "push_back(" << i << ") "<< sbq.size()<<"\n"; this_thread::sleep_for(chrono::milliseconds(200)); } } catch(sync_queue_is_closed&) { mos << "closed !!!\n"; } catch(...) { mos << "exception !!!\n"; } }
void operator()() { go_->count_down_and_wait(); q_->push_back(42); }