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

Method dispatch

modules/engine/runtime/src/io/common/io_resolver.cpp:14–35  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12}
13
14void IORequestResolverChain::dispatch(SkrAsyncServicePriority priority) SKR_NOEXCEPT
15{
16 IOBatchId batch;
17 while (fetched_batches[priority].try_dequeue(batch))
18 {
19 for (auto request : batch->get_requests())
20 {
21 if (auto pComp = io_component<IOStatusComponent>(request.get()))
22 {
23 pComp->setStatus(SKR_IO_STAGE_RESOLVING);
24 for (auto resolver : chain)
25 {
26 if (!runner->try_cancel(priority, request))
27 resolver->resolve(priority, batch, request);
28 }
29 }
30 }
31 processed_batches[priority].enqueue(batch);
32 dec_processing(priority);
33 inc_processed(priority);
34 }
35}
36
37void VFSFileResolver::resolve(SkrAsyncServicePriority priority, IOBatchId batch, IORequestId request) SKR_NOEXCEPT
38{

Callers 1

phaseProcessBatchesMethod · 0.45

Calls 6

try_cancelMethod · 0.80
try_dequeueMethod · 0.45
getMethod · 0.45
setStatusMethod · 0.45
resolveMethod · 0.45
enqueueMethod · 0.45

Tested by

no test coverage detected