MCPcopy Create free account
hub / github.com/Snapchat/Valdi / flushLoadRequests

Method flushLoadRequests

valdi/src/valdi/runtime/Resources/AssetsManager.cpp:829–854  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

827}
828
829void AssetsManager::flushLoadRequests() {
830 auto guard = lock();
831
832 while (!_pendingLoadRequests.empty() && _pauseUpdatesCount == 0) {
833 auto loadRequest = _pendingLoadRequests.front();
834 _pendingLoadRequests.pop_front();
835
836 if (loadRequest->scheduledForCancelation()) {
837 auto lastLoadRequestResult = loadRequest->getLastLoadResult();
838 // Also clear the last load result ref so that we don't need to wait until the request instance is
839 // deallocated
840 loadRequest->setLastLoadResult(Result<Ref<LoadedAsset>>());
841
842 guard.unlock();
843 loadRequest->cancel();
844 lastLoadRequestResult = Result<Ref<LoadedAsset>>();
845 } else {
846 guard.unlock();
847 loadRequest->startLoadIfNeeded();
848 }
849
850 guard.lock();
851 }
852
853 _pendingLoadRequestsScheduled = false;
854}
855
856void AssetsManager::beginPauseUpdates() {
857 auto guard = lock();

Callers 1

Calls 8

frontMethod · 0.80
setLastLoadResultMethod · 0.80
startLoadIfNeededMethod · 0.80
cancelMethod · 0.65
emptyMethod · 0.45
unlockMethod · 0.45
lockMethod · 0.45

Tested by

no test coverage detected