5 #include "src/task-utils.h" 7 #include "src/cancelable-task.h" 14 class CancelableFuncTask final :
public CancelableTask {
16 CancelableFuncTask(Isolate* isolate, std::function<
void()> func)
17 : CancelableTask(isolate), func_(
std::move(func)) {}
18 CancelableFuncTask(CancelableTaskManager* manager, std::function<
void()> func)
19 : CancelableTask(manager), func_(
std::move(func)) {}
20 void RunInternal() final { func_(); }
23 const std::function<void()> func_;
26 class CancelableIdleFuncTask final :
public CancelableIdleTask {
28 CancelableIdleFuncTask(Isolate* isolate, std::function<
void(
double)> func)
29 : CancelableIdleTask(isolate), func_(
std::move(func)) {}
30 CancelableIdleFuncTask(CancelableTaskManager* manager,
31 std::function<
void(
double)> func)
32 : CancelableIdleTask(manager), func_(
std::move(func)) {}
33 void RunInternal(
double deadline_in_seconds)
final {
34 func_(deadline_in_seconds);
38 const std::function<void(double)> func_;
43 std::unique_ptr<CancelableTask> MakeCancelableTask(Isolate* isolate,
44 std::function<
void()> func) {
45 return base::make_unique<CancelableFuncTask>(isolate, std::move(func));
48 std::unique_ptr<CancelableTask> MakeCancelableTask(
49 CancelableTaskManager* manager, std::function<
void()> func) {
50 return base::make_unique<CancelableFuncTask>(manager, std::move(func));
53 std::unique_ptr<CancelableIdleTask> MakeCancelableIdleTask(
54 Isolate* isolate, std::function<
void(
double)> func) {
55 return base::make_unique<CancelableIdleFuncTask>(isolate, std::move(func));
58 std::unique_ptr<CancelableIdleTask> MakeCancelableIdleTask(
59 CancelableTaskManager* manager, std::function<
void(
double)> func) {
60 return base::make_unique<CancelableIdleFuncTask>(manager, std::move(func));