void ChainPlayer::Play() { if (get_player_num() == 0) { myturn_ = true; } while(!myturn_) { } PlayMySong(); Log().Debug() << "[MsgFlow] Job " << get_id() << " complete"; EACH_RECORDER(OnePlayerDone(get_id())); }
void JobTracker::UpdateStatusAndNotify(JobStatus::type status) { state_->set_status(status); repo_.UpdateJobRuntime(*state_); if (auto boss = get_bossrecorder().lock()) { switch ( status ) { case JobStatus::FINISHED: EACH_RECORDER(OnePlayerDone(get_id())); boss->OnePlayerDone(get_id()); break; case JobStatus::CANCELED: boss->OnePlayerCanceled(get_id()); break; default: break; } /* ----- end switch ----- */ } }