Browse Source

LibCore: Add Core::EventLoop::has_been_instantiated()

This static bool getter can be used to VERIFY that an event loop exists,
in situations where one is expected.

This is helpful if the absence of an event loop would generate strange
and/or loud errors that don't immediately point to this as a cause.
Andreas Kling 3 years ago
parent
commit
67a0fa2b78

+ 5 - 0
Userland/Libraries/LibCore/EventLoop.cpp

@@ -62,6 +62,11 @@ static HashTable<Notifier*>* s_notifiers;
 int EventLoop::s_wake_pipe_fds[2];
 int EventLoop::s_wake_pipe_fds[2];
 static RefPtr<InspectorServerConnection> s_inspector_server_connection;
 static RefPtr<InspectorServerConnection> s_inspector_server_connection;
 
 
+bool EventLoop::has_been_instantiated()
+{
+    return s_main_event_loop;
+}
+
 class SignalHandlers : public RefCounted<SignalHandlers> {
 class SignalHandlers : public RefCounted<SignalHandlers> {
     AK_MAKE_NONCOPYABLE(SignalHandlers);
     AK_MAKE_NONCOPYABLE(SignalHandlers);
     AK_MAKE_NONMOVABLE(SignalHandlers);
     AK_MAKE_NONMOVABLE(SignalHandlers);

+ 2 - 0
Userland/Libraries/LibCore/EventLoop.h

@@ -74,6 +74,8 @@ public:
     };
     };
     static void notify_forked(ForkEvent);
     static void notify_forked(ForkEvent);
 
 
+    static bool has_been_instantiated();
+
 private:
 private:
     void wait_for_event(WaitMode);
     void wait_for_event(WaitMode);
     Optional<Time> get_next_timer_expiration();
     Optional<Time> get_next_timer_expiration();