virtual bool GetSynchronous(const TCHAR* CacheKey, TArray<uint8>& OutData) override { UE_LOG(LogDerivedDataCache, Verbose, TEXT("GetSynchronous %s"), CacheKey); FAsyncTask<FBuildAsyncWorker> PendingTask((FDerivedDataPluginInterface*)NULL, CacheKey, true); AddToAsyncCompletionCounter(1); PendingTask.StartSynchronousTask(); OutData = PendingTask.GetTask().Data; return PendingTask.GetTask().bSuccess; }
virtual bool GetSynchronous(FDerivedDataPluginInterface* DataDeriver, TArray<uint8>& OutData) { check(DataDeriver); FString CacheKey = FDerivedDataCache::BuildCacheKey(DataDeriver); UE_LOG(LogDerivedDataCache, Verbose, TEXT("GetSynchronous %s"), *CacheKey); FAsyncTask<FBuildAsyncWorker> PendingTask(DataDeriver, *CacheKey, true); AddToAsyncCompletionCounter(1); PendingTask.StartSynchronousTask(); OutData = PendingTask.GetTask().Data; return PendingTask.GetTask().bSuccess; }
void ThreadPool::AddTask(TaskType task) { assert(!m_thread.empty()); std::lock_guard<std::mutex> lock( m_mutex ); m_task.push( std::move(task) ); #ifdef QT qDebug() << "Add Task\n"; qDebug() << "Peding : " << PendingTask() << "\n"; #endif // m_cond.notify_all(); }