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