Changeset 26395 in vbox for trunk/src/VBox
- Timestamp:
- Feb 9, 2010 6:08:24 PM (15 years ago)
- svn:sync-xref-src-repo-rev:
- 57490
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TabularUnified trunk/src/VBox/Main/webservice/vboxweb.cpp ¶
r26394 r26395 269 269 m_cIdleThreads(0) 270 270 { 271 RTSemEvent Create(&m_event);271 RTSemEventMultiCreate(&m_event); 272 272 273 273 // create cThreads threads … … 292 292 ~SoapQ() 293 293 { 294 RTSemEvent Destroy(m_event);294 RTSemEventMultiDestroy(m_event); 295 295 } 296 296 297 297 util::WriteLockHandle m_mutex; 298 RTSEMEVENT 298 RTSEMEVENTMULTI m_event; 299 299 300 300 std::list<SoapThread*> m_llAllThreads; … … 314 314 { 315 315 // wait for something to happen 316 RTSemEvent Wait(pst->pQ->m_event, RT_INDEFINITE_WAIT);316 RTSemEventMultiWait(pst->pQ->m_event, RT_INDEFINITE_WAIT); 317 317 318 318 util::AutoWriteLock qlock(pst->pQ->m_mutex COMMA_LOCKVAL_SRC_POS); … … 322 322 pst->pQ->m_llSocketsQ.pop_front(); 323 323 --pst->pQ->m_cIdleThreads; 324 325 // reset the multi event only if the queue is now empty; otherwise 326 // another thread will also wake up when we release the mutex and 327 // process another one 328 if (pst->pQ->m_llSocketsQ.size() == 0) 329 RTSemEventMultiReset(pst->pQ->m_event); 330 324 331 qlock.release(); 325 332 … … 398 405 WebLog("Request %llu on socket %d queued for processing\n", i, s); 399 406 // unblock one of the worker threads 400 RTSemEvent Signal(soapq.m_event);407 RTSemEventMultiSignal(soapq.m_event); 401 408 402 409 // we have to process main event queue
Note:
See TracChangeset
for help on using the changeset viewer.