MCPcopy Create free account
hub / github.com/SakuraEngine/SakuraEngine / waitForWork

Method waitForWork

modules/core/task/src/task2.cpp:269–284  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

267 }
268
269 void waitForWork()
270 {
271 if(work.num > 0)
272 return;
273 if(!isMainThread)
274 {
275 //report to scheduler that we are spinning
276 scheduler->spinningWorkers[scheduler->nextSpinningWorkerIdx++ % scheduler->spinningWorkers.size()] = id;
277 skr_mutex_release(&work.mutex);
278 spinForWork();
279 skr_mutex_acquire(&work.mutex);
280 }
281 work.wait([this]() {
282 return work.num > 0 || shutdown;
283 });
284 }
285
286 void runUntilIdle()
287 {

Callers

nothing calls this directly

Calls 4

skr_mutex_releaseFunction · 0.50
skr_mutex_acquireFunction · 0.50
sizeMethod · 0.45
waitMethod · 0.45

Tested by

no test coverage detected