| 396 | EE::Delete( recordIter->second ); |
| 397 | m_resourceRecords.erase( recordIter ); |
| 398 | } |
| 399 | } |
| 400 | |
| 401 | // Delete request |
| 402 | EE::Delete( pCompletedRequest ); |
| 403 | } |
| 404 | |
| 405 | m_completedRequests.clear(); |
| 406 | } |
| 407 | |
| 408 | // Kick off new async task |
| 409 | //------------------------------------------------------------------------- |
| 410 | |
| 411 | if ( !m_activeRequests.empty() ) |
| 412 | { |
| 413 | m_taskSystem.ScheduleTask( &m_asyncProcessingTask ); |
| 414 | m_isAsyncTaskRunning = true; |
| 415 | } |
| 416 | } |
| 417 | |
| 418 | void ResourceSystem::WaitForAllRequestsToComplete() |
| 419 | { |
| 420 | while ( IsBusy() ) |
| 421 | { |
| 422 | Update(); |
| 423 | } |
| 424 | } |
| 425 | |
| 426 | void ResourceSystem::ProcessResourceRequests() |
| 427 | { |
| 428 | EE_PROFILE_FUNCTION_RESOURCE(); |
| 429 | |
| 430 | //------------------------------------------------------------------------- |
| 431 | |
| 432 | // We dont have to worry about this loop even if the m_activeRequests array is modified from another thread since we only access the array in 2 places and both use locks |
| 433 | for ( int32_t i = (int32_t) m_activeRequests.size() - 1; i >= 0; i-- ) |
| 434 | { |
| 435 | ResourceRequest::RequestContext context; |
| 436 | context.m_createRawRequestRequestFunction = [this] ( ResourceRequest* pRequest ) { m_pResourceProvider->RequestRawResource( pRequest ); }; |
| 437 | context.m_cancelRawRequestRequestFunction = [this] ( ResourceRequest* pRequest ) { m_pResourceProvider->CancelRequest( pRequest ); }; |
| 438 | context.m_loadResourceFunction = [this] ( ResourceRequesterID const& requesterID, ResourcePtr& resourcePtr ) { LoadResource( resourcePtr, requesterID ); }; |
| 439 | context.m_unloadResourceFunction = [this] ( ResourceRequesterID const& requesterID, ResourcePtr& resourcePtr ) { UnloadResource( resourcePtr, requesterID ); }; |
nothing calls this directly
no test coverage detected