| Flutter Windows Embedder |

Public Member Functions | List of all members
flutter::TimerThread Class Reference

`#include <task_runner_window.h>`

## Public Member Functions
| TimerThread (std::function< void()> callback)
void | Start ()
void | Stop ()
| ~TimerThread ()
void | ScheduleAt (std::chrono::time_point< std::chrono::high_resolution_clock > time_point)

## Detailed Description

Definition at line 29 of file task_runner_window.h.

## Constructor & Destructor Documentation

## ◆ TimerThread()

flutter::TimerThread::TimerThread | ( | std::function< void()> | callback | ) |
| explicit

Definition at line 18 of file task_runner_window.cc.

19 : callback_(std::move(callback)),
20 next_fire_time_(
21 std::chrono::time_point<std::chrono::high_resolution_clock>::max()) {}
callback
FlutterDesktopBinaryReply callback
Definition: flutter_windows_view_unittests.cc:52

## ◆ ~TimerThread()

flutter::TimerThread::~TimerThread | ( |  | ) |

Definition at line 41 of file task_runner_window.cc.

41 {
42 // Ensure that Stop() has been called if Start() has been called.
43 FML_DCHECK(callback_ == nullptr || !thread_);
44 }

## Member Function Documentation

## ◆ ScheduleAt()

void flutter::TimerThread::ScheduleAt | ( | std::chrono::time_point< std::chrono::high_resolution_clock > | time_point | ) |

Definition at line 49 of file task_runner_window.cc.

50 {
51 std::lock_guard<std::mutex> lock(mutex_);
52 if (time_point < next_fire_time_) {
53 next_fire_time_ = time_point;
54 }
55 ++schedule_counter_;
56 cv_.notify_all();
57 }

## ◆ Start()

void flutter::TimerThread::Start | ( |  | ) |

Definition at line 23 of file task_runner_window.cc.

23 {
24 FML_DCHECK(!thread_);
25 thread_ =
26 std::make_optional<std::thread>(&TimerThread::TimerThreadMain, this);
27 }

Referenced by flutter::testing::TEST().

## ◆ Stop()

void flutter::TimerThread::Stop | ( |  | ) |

Definition at line 29 of file task_runner_window.cc.

29 {
30 if (!thread_) {
31 return;
32 }
33 {
34 std::lock_guard<std::mutex> lock(mutex_);
35 callback_ = nullptr;
36 }
37 cv_.notify_all();
38 thread_->join();
39 }

The documentation for this class was generated from the following files:

- shell/platform/windows/task_runner_window.h
- shell/platform/windows/task_runner_window.cc