1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:17:45 +00:00

LibCore: Add a hook for custom construction of EventLoopImplementation

This commit is contained in:
Andreas Kling 2023-04-24 14:47:52 +02:00
parent 16c47ccff6
commit 31289a8d57
3 changed files with 7 additions and 1 deletions

View file

@ -30,8 +30,10 @@ bool has_event_loop()
}
}
Function<NonnullOwnPtr<EventLoopImplementation>()> EventLoop::make_implementation = EventLoopImplementationUnix::create;
EventLoop::EventLoop()
: m_impl(make<EventLoopImplementationUnix>())
: m_impl(make_implementation())
{
if (event_loop_stack().is_empty()) {
event_loop_stack().append(*this);

View file

@ -93,6 +93,8 @@ public:
static EventLoop& current();
static Function<NonnullOwnPtr<EventLoopImplementation>()> make_implementation;
private:
void wait_for_event(WaitMode);
Optional<Time> get_next_timer_expiration();

View file

@ -12,6 +12,8 @@ namespace Core {
class EventLoopImplementationUnix final : public EventLoopImplementation {
public:
static NonnullOwnPtr<EventLoopImplementationUnix> create() { return make<EventLoopImplementationUnix>(); }
EventLoopImplementationUnix();
virtual ~EventLoopImplementationUnix();