mirror of
https://github.com/fergalmoran/ladybird.git
synced 2026-03-22 21:37:22 +00:00
LibCore: Add Core::EventLoop::spin_until(Function<bool()>)
This function spins the event loop until a goal condition is met.
This commit is contained in:
@@ -366,6 +366,13 @@ int EventLoop::exec()
|
||||
VERIFY_NOT_REACHED();
|
||||
}
|
||||
|
||||
void EventLoop::spin_until(Function<bool()> goal_condition)
|
||||
{
|
||||
EventLoopPusher pusher(*this);
|
||||
while (!goal_condition())
|
||||
pump();
|
||||
}
|
||||
|
||||
void EventLoop::pump(WaitMode mode)
|
||||
{
|
||||
wait_for_event(mode);
|
||||
|
||||
@@ -44,6 +44,8 @@ public:
|
||||
// this should really only be used for integrating with other event loops
|
||||
void pump(WaitMode = WaitMode::WaitForEvents);
|
||||
|
||||
void spin_until(Function<bool()>);
|
||||
|
||||
void post_event(Object& receiver, NonnullOwnPtr<Event>&&);
|
||||
|
||||
static EventLoop& main();
|
||||
|
||||
Reference in New Issue
Block a user