ValueType operator()()
 {
   go_->count_down_and_wait();
   return q_->pull();
 }
 void operator()()
 {
   go_->count_down_and_wait();
   q_->push(42);
 }