Flutter Engine
The Flutter Engine
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
headless_event_loop.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
5#include "flutter/shell/platform/glfw/headless_event_loop.h"
6
7#include <atomic>
8#include <utility>
9
10namespace flutter {
11
13 const TaskExpiredCallback& on_task_expired)
14 : EventLoop(main_thread_id, on_task_expired) {}
15
17
18void HeadlessEventLoop::WaitUntil(const TaskTimePoint& time) {
19 std::mutex& mutex = GetTaskQueueMutex();
20 std::unique_lock<std::mutex> lock(mutex);
21 task_queue_condition_.wait_until(lock, time);
22}
23
24void HeadlessEventLoop::Wake() {
25 task_queue_condition_.notify_one();
26}
27
28} // namespace flutter
std::mutex & GetTaskQueueMutex()
Definition: event_loop.h:58
std::function< void(const FlutterTask *)> TaskExpiredCallback
Definition: event_loop.h:22
HeadlessEventLoop(std::thread::id main_thread_id, const TaskExpiredCallback &on_task_expired)
static double time(int loops, Benchmark *bench, Target *target)
Definition: nanobench.cpp:394
const uintptr_t id