unsigned int CJobManager::AddJob(CJob *job, IJobCallback *callback, CJob::PRIORITY priority) { CSingleLock lock(m_section); if (!m_running) return 0; // increment the job counter, ensuring 0 (invalid job) is never hit m_jobCounter++; if (m_jobCounter == 0) m_jobCounter++; // create a work item for this job CWorkItem work(job, m_jobCounter, priority, callback); m_jobQueue[priority].push_back(work); StartWorkers(priority); return work.m_id; }
CAsyncApiMgr::CAsyncApiMgr() { StartWorkers(); }
Server::Server(int port,const std::string& ip,int numWorkers):listenerPort(port),listenerIP(ip),listener(port,ip),handler(NULL),defaultErrorHandler(NULL),terminated(false),workersCount(0),gcPeriod(100),gcMaxLifeTime(1800),gcCounter(0),listenerThreadRunning(false) { StartWorkers(numWorkers); }