Serenity Operating System
at master 39 lines 905 B view raw
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}