| 238 | // If we dont have a request for this resource ID create one |
| 239 | if ( foundIdx == InvalidIndex ) |
| 240 | { |
| 241 | m_pendingRequests.emplace_back( eastl::move( request ) ); |
| 242 | } |
| 243 | else // Overwrite exiting request - we deal with whether we have to register a task or not in the update |
| 244 | { |
| 245 | m_pendingRequests[foundIdx] = request; |
| 246 | } |
| 247 | } |
| 248 | |
| 249 | ResourceRequest* ResourceSystem::TryFindActiveRequest( ResourceRecord const* pResourceRecord ) const |
| 250 | { |
| 251 | EE_ASSERT( pResourceRecord != nullptr ); |
| 252 | EE_ASSERT( !m_isAsyncTaskRunning ); |
| 253 | |
| 254 | Threading::RecursiveScopeLock lock( m_accessLock ); |
| 255 | auto predicate = [] ( ResourceRequest const* pRequest, ResourceRecord const* pResourceRecord ) { return pRequest->GetResourceRecord() == pResourceRecord; }; |
| 256 | int32_t const foundIdx = VectorFindIndex( m_activeRequests, pResourceRecord, predicate ); |