| 827 | } |
| 828 | |
| 829 | void 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 | |
| 856 | void AssetsManager::beginPauseUpdates() { |
| 857 | auto guard = lock(); |
no test coverage detected