blob: 23e44637783c92be75b65a58b6074825fe5411c2 [file] [log] [blame]
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "flutter/shell/platform/glfw/headless_event_loop.h"
#include <atomic>
#include <utility>
namespace flutter {
HeadlessEventLoop::HeadlessEventLoop(std::thread::id main_thread_id,
const TaskExpiredCallback& on_task_expired)
: EventLoop(main_thread_id, std::move(on_task_expired)) {}
HeadlessEventLoop::~HeadlessEventLoop() = default;
void HeadlessEventLoop::WaitUntil(const TaskTimePoint& time) {
std::mutex& mutex = GetTaskQueueMutex();
std::unique_lock<std::mutex> lock(mutex);
task_queue_condition_.wait_until(lock, time);
}
void HeadlessEventLoop::Wake() {
task_queue_condition_.notify_one();
}
} // namespace flutter