//implement IRunnable void CMediaPlayer::Run(void *pData) { if (pData == NULL) WaitFunc(); else PlayFunc((ThreadParam *)pData); }
int MasterServerLogic::WaitForGameList() { if(!WaitFunc(&MasterServerLogic::wait_GameListReceived, 10, "receiving game list")) r3dError("can't receive game list"); /* r3dOutToLog("GameList: %d games\n", games_.size()); for(size_t i=0; i<games_.size(); i++) { const GBPKT_M2C_GameData_s& g = games_[i]; r3dOutToLog("game%d: players:%d\n", i, g.info.maxPlayers); }*/ return 1; }
void wait() { ulen count[TaskCount]={}; ulen timeout_count=0; for(;;) { ulen index=WaitFunc(mev); if( index==0 ) { timeout_count++; continue; } index--; if( index<TaskCount ) { count[index]++; asem.dec(); } else { for(ulen i=0; i<TaskCount ;i++) total[i]+=count[i]; mev.trigger(TaskCount+1); if( timeout_count ) Printf(Con,"timeout = #;\n",timeout_count); return; } } }