#include <task_runner.h>
Public Member Functions | |
| virtual | ~TaskRunner () |
| virtual void | PostTask (const fml::closure &task) override |
| virtual void | PostTaskForTime (const fml::closure &task, fml::TimePoint target_time) |
| virtual void | PostDelayedTask (const fml::closure &task, fml::TimeDelta delay) |
| virtual bool | RunsTasksOnCurrentThread () |
| virtual TaskQueueId | GetTaskQueueId () |
Public Member Functions inherited from fml::RefCountedThreadSafe< TaskRunner > | |
| void | Release () const |
Public Member Functions inherited from fml::internal::RefCountedThreadSafeBase | |
| void | AddRef () const |
| bool | HasOneRef () const |
| void | AssertHasOneRef () const |
Static Public Member Functions | |
| static void | RunNowOrPostTask (const fml::RefPtr< fml::TaskRunner > &runner, const fml::closure &task) |
| static void | RunNowAndFlushMessages (const fml::RefPtr< fml::TaskRunner > &runner, const fml::closure &task) |
Protected Member Functions | |
| TaskRunner (fml::RefPtr< MessageLoopImpl > loop) | |
Protected Member Functions inherited from fml::RefCountedThreadSafe< TaskRunner > | |
| RefCountedThreadSafe () | |
| ~RefCountedThreadSafe () | |
Protected Member Functions inherited from fml::internal::RefCountedThreadSafeBase | |
| RefCountedThreadSafeBase () | |
| ~RefCountedThreadSafeBase () | |
| bool | Release () const |
| void | Adopt () |
The object for scheduling tasks on a fml::MessageLoop.
Typically there is one TaskRunner associated with each thread. When one wants to execute an operation on that thread they post a task to the TaskRunner.
Definition at line 34 of file task_runner.h.
|
virtualdefault |
|
explicitprotected |
Definition at line 19 of file task_runner.cc.
|
virtual |
Returns the unique identifier associated with the TaskRunner.
Will be TaskQueueId::kInvalid for embedder supplied task runners that are not associated with a task queue.
Definition at line 38 of file task_runner.cc.
References FML_DCHECK.
Referenced by flutter::VsyncWaiter::FireCallback(), fml::testing::TaskQueueWrapper::GetTaskQueueId(), flutter::testing::GetThreadMergerFromRasterThread(), flutter::Engine::Run(), flutter::EmbedderEngine::RunTask(), flutter::Rasterizer::Setup(), fml::testing::TEST(), fml::testing::TEST(), fml::testing::TEST(), fml::testing::TEST(), fml::testing::TEST(), fml::testing::TEST(), fml::testing::TEST(), fml::testing::TEST(), and flutter::testing::TEST_F().
|
virtual |
Schedules a task to be run on the MessageLoop after the time delay has passed.
Reimplemented in flutter_runner::CompatTaskRunner.
Definition at line 33 of file task_runner.cc.
References fml::TimePoint::Now().
Referenced by flutter::UnrefQueue< T >::DeleteTexture(), flutter::testing::PendingTests::OnTestBegin(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), and flutter::UnrefQueue< T >::Unref().
|
overridevirtual |
Schedules task to be executed on the TaskRunner's associated event loop.
Implements fml::BasicTaskRunner.
Reimplemented in flutter_runner::CompatTaskRunner.
Definition at line 24 of file task_runner.cc.
References fml::TimePoint::Now().
Referenced by flutter::BM_PlatformMessageResponseDartComplete(), flutter::ScriptCompletionTaskObserver::DidProcessTask(), flutter::testing::ShellTest::DispatchPointerData(), flutter::Rasterizer::Draw(), flutter::EncodeImage(), flutter::VsyncWaiter::FireCallback(), flutter::PlatformViewEmbedder::EmbedderPlatformMessageHandler::HandlePlatformMessage(), flutter::ImageDecoderImpeller::ImageDecoderImpeller(), flutter::FragmentProgram::initFromAsset(), fml::Thread::Join(), flutter::testing::ShellTest::NotifyIdle(), flutter::GTestActivity::OnNativeWindowCreated(), flutter::testing::ShellTest::PumpOneFrame(), flutter::PersistentCache::Purge(), flutter::Engine::Run(), flutter::testing::ShellTest::SetViewportMetrics(), flutter::testing::SkiaGpuObjectTest::SkiaGpuObjectTest(), flutter::AndroidExternalViewEmbedder2::SubmitFlutterView(), flutter::testing::TEST(), flutter::testing::TEST(), flutter::testing::TEST(), fml::testing::TEST(), fml::testing::TEST(), fml::testing::TEST(), fml::testing::TEST(), TEST(), TEST(), flutter_runner::TEST(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TestSimulatedInputEvents(), flutter::PlatformMessageResponseDart::~PlatformMessageResponseDart(), and flutter::testing::TestTimeoutListener::~TestTimeoutListener().
|
virtual |
Reimplemented in flutter_runner::CompatTaskRunner.
Definition at line 28 of file task_runner.cc.
Referenced by flutter::VsyncWaiterEmbedder::OnEmbedderVsync(), TEST(), and flutter_runner::VsyncWaiter::VsyncWaiter().
|
static |
Like RunNowOrPostTask, except that if the task can be immediately executed, an empty task will still be posted to the runner afterwards.
This is used to ensure that messages posted to Dart from the platform thread always flush the Dart event loop.
Definition at line 67 of file task_runner.cc.
References FML_DCHECK.
|
static |
Executes the task directly if the TaskRunner runner is the TaskRunner associated with the current executing thread.
Definition at line 56 of file task_runner.cc.
References FML_DCHECK.
Referenced by flutter::ImageEncodingImpeller::ConvertImageToRaster(), flutter::testing::ShellTest::DestroyShell(), flutter::ScriptCompletionTaskObserver::DidProcessTask(), flutter::Picture::DoRasterizeToImage(), flutter::Animator::EnqueueTraceFlowId(), flutter::gpu::Context::GetDefaultContext(), flutter_runner::Engine::GetEngineReturnCode(), flutter::testing::GetRasterizerResourceCacheBytesSync(), flutter::HandleMessageOnHandler(), flutter::AndroidImageGenerator::MakeFromData(), flutter::PlatformViewAndroid::NotifyChanged(), flutter::PlatformView::NotifyCreated(), flutter::PlatformViewAndroid::NotifyCreated(), flutter::PlatformViewAndroid::NotifyDestroyed(), flutter::PlatformViewAndroid::NotifySurfaceWindowChanged(), flutter::testing::ShellTest::OnServiceProtocol(), flutter::testing::ShellTest::PlatformViewNotifyCreated(), flutter::testing::ShellTest::PlatformViewNotifyDestroyed(), flutter::testing::PostSync(), flutter::testing::RasterizerIsTornDown(), flutter::testing::ShellTest::RestartEngine(), flutter::testing::RunDartCodeInIsolate(), flutter::testing::ShellTest::RunEngine(), flutter::testing::AutoIsolateShutdown::RunInIsolateScope(), flutter::RunTester(), flutter::testing::ShellTest::SendEnginePlatformMessage(), flutter::testing::AutoIsolateShutdown::Shutdown(), flutter::Spawn(), flutter::StartupAndShutdownShell(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::ValidateShell(), flutter::testing::ShellTest::VSyncFlush(), flutter_runner::VsyncWaiter::VsyncWaiter(), flutter::AndroidContextGLSkia::~AndroidContextGLSkia(), flutter::testing::AutoIsolateShutdown::~AutoIsolateShutdown(), flutter::DlDeferredImageGPUSkia::~DlDeferredImageGPUSkia(), flutter::testing::TestIOManager::~TestIOManager(), and flutter_runner::VsyncWaiter::~VsyncWaiter().
|
virtual |
Returns true when the current executing thread's TaskRunner matches this instance.
Reimplemented in flutter_runner::CompatTaskRunner.
Definition at line 43 of file task_runner.cc.
References fml::MessageLoop::GetCurrentTaskQueueId(), fml::MessageLoop::IsInitializedForCurrentThread(), and fml::TaskRunnerChecker::RunsOnTheSameThread().
Referenced by flutter::testing::ShellTestVsyncWaiter::AwaitVSync(), flutter::testing::ConstantFiringVsyncWaiter::AwaitVSync(), flutter::PlatformViewIOS::CreateRenderingSurface(), flutter::ImageDecoderSkia::Decode(), flutter::Rasterizer::Draw(), flutter::testing::EmbedderTestTaskRunner::EmbedderTestTaskRunner(), flutter::Shell::GetMainDisplayRefreshRate(), flutter::ImageDecoder::ImageDecoder(), flutter::testing::RunDartCodeInIsolateOnUITaskRunner(), flutter::EmbedderEngine::RunTask(), flutter::VsyncWaiter::ScheduleSecondaryCallback(), flutter::PlatformMessageHandlerIos::SetMessageHandler(), flutter::PlatformViewIOS::SetOwnerViewController(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), flutter::testing::TEST_F(), and flutter::AndroidContextGLSkia::~AndroidContextGLSkia().