Esempio n. 1
0
	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;
	}
Esempio n. 2
0
	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;
	}
Esempio n. 3
0
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();
}