Flutter Engine Uber Docs
Docs for the entire Flutter Engine repo.
 
Loading...
Searching...
No Matches
task_runner_util.cc
Go to the documentation of this file.
1// Copyright 2013 The Flutter Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
6
7namespace fml {
8
11 : task_runner_(std::move(task_runner)) {}
12
14 task_runner_->PostTask(task);
15}
16
19 std::function<bool()> is_usable)
20 : task_runner_(std::move(task_runner)),
21 is_usable_(
22 std::make_shared<std::function<bool()>>(std::move(is_usable))) {}
23
25 auto task_wrapper = [task, weak_is_usable = std::weak_ptr(is_usable_)] {
26 std::shared_ptr<std::function<bool()>> is_usable = weak_is_usable.lock();
27 if (is_usable && (*is_usable)()) {
28 task();
29 }
30 };
31 task_runner_->PostTask(task_wrapper);
32}
33
34} // namespace fml
ConditionalBasicTaskRunner(fml::RefPtr< fml::TaskRunner > task_runner, std::function< bool()> is_usable)
void PostTask(const fml::closure &task) override
virtual void PostTask(const fml::closure &task) override
WrapperBasicTaskRunner(fml::RefPtr< fml::TaskRunner > task_runner)
void PostTask(const fml::closure &task) override
Dart_NativeFunction function
Definition fuchsia.cc:51
std::function< void()> closure
Definition closure.h:14
Definition ref_ptr.h:261