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

Method sync

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

Source from the content-addressed store, hash-verified

545 }
546
547 void scheduler_t::sync(event_t event)
548 {
549 SkrZoneScopedN("SyncEvent");
550 auto worker = currentWorker;
551 SKR_ASSERT(worker == nullptr);
552 worker = (Worker*)mainWorker;
553 SMutexLock guard(worker->work.mutex);
554 int i = 0;
555 while(!event.done())
556 {
557 skr_mutex_release(&worker->work.mutex);
558 i = worker->stealWork(i);
559 skr_mutex_acquire(&worker->work.mutex);
560 worker->runUntilIdle();
561 }
562 }
563
564 void scheduler_t::sync(counter_t counter)
565 {

Callers 1

syncFunction · 0.45

Calls 5

stealWorkMethod · 0.80
runUntilIdleMethod · 0.80
skr_mutex_releaseFunction · 0.50
skr_mutex_acquireFunction · 0.50
doneMethod · 0.45

Tested by

no test coverage detected