Serenity Operating System
1/*
2 * Copyright (c) 2022, Andreas Kling <kling@serenityos.org>
3 *
4 * SPDX-License-Identifier: BSD-2-Clause
5 */
6
7#include "EventLoopPluginSerenity.h"
8#include <AK/Function.h>
9#include <AK/NonnullRefPtr.h>
10#include <LibCore/EventLoop.h>
11#include <LibWeb/Platform/TimerSerenity.h>
12
13namespace Web::Platform {
14
15EventLoopPluginSerenity::EventLoopPluginSerenity() = default;
16EventLoopPluginSerenity::~EventLoopPluginSerenity() = default;
17
18void EventLoopPluginSerenity::spin_until(Function<bool()> goal_condition)
19{
20 Core::EventLoop::current().spin_until(move(goal_condition));
21}
22
23void EventLoopPluginSerenity::deferred_invoke(Function<void()> function)
24{
25 VERIFY(function);
26 Core::deferred_invoke(move(function));
27}
28
29NonnullRefPtr<Timer> EventLoopPluginSerenity::create_timer()
30{
31 return TimerSerenity::create();
32}
33
34void EventLoopPluginSerenity::quit()
35{
36 Core::EventLoop::current().quit(0);
37}
38
39}