5#ifndef FLUTTER_IMPELLER_RENDERER_PIPELINE_COMPILE_QUEUE_H_
6#define FLUTTER_IMPELLER_RENDERER_PIPELINE_COMPILE_QUEUE_H_
8#include <unordered_map>
43 :
public std::enable_shared_from_this<PipelineCompileQueue> {
45 static std::shared_ptr<PipelineCompileQueue>
Create(
46 std::shared_ptr<fml::ConcurrentTaskRunner> worker_task_runner);
76 std::shared_ptr<fml::ConcurrentTaskRunner> worker_task_runner_;
77 Mutex pending_jobs_mutex_;
78 size_t priorities_elevated_ = {};
87 std::shared_ptr<fml::ConcurrentTaskRunner> worker_task_runner);
A task queue designed for managing compilation of pipeline state objects.
PipelineCompileQueue & operator=(const PipelineCompileQueue &)=delete
bool PostJobForDescriptor(const PipelineDescriptor &desc, const fml::closure &job)
Post a compile job for the specified descriptor.
static std::shared_ptr< PipelineCompileQueue > Create(std::shared_ptr< fml::ConcurrentTaskRunner > worker_task_runner)
PipelineCompileQueue(const PipelineCompileQueue &)=delete
virtual ~PipelineCompileQueue()
void PerformJobEagerly(const PipelineDescriptor &desc)
If the task has not yet been done, perform it eagerly on the calling thread. This can be used in lieu...
std::function< void()> closure
#define IPLR_GUARDED_BY(x)