19 #ifndef MIR_GLIB_MAIN_LOOP_H_ 20 #define MIR_GLIB_MAIN_LOOP_H_ 43 operator GMainContext*()
const;
45 GMainContext*
const main_context;
58 void register_signal_handler(
59 std::initializer_list<int> signals,
60 std::function<
void(
int)>
const& handler)
override;
62 void register_signal_handler(
63 std::initializer_list<int> signals,
66 void register_fd_handler(
67 std::initializer_list<int> fds,
69 std::function<
void(
int)>
const& handler)
override;
71 void register_fd_handler(
72 std::initializer_list<int> fds,
76 void unregister_fd_handler(
void const* owner)
override;
78 void enqueue(
void const* owner,
ServerAction const& action)
override;
79 void pause_processing_for(
void const* owner)
override;
80 void resume_processing_for(
void const* owner)
override;
82 std::unique_ptr<mir::time::Alarm> create_alarm(
83 std::function<
void()>
const& callback)
override;
85 std::unique_ptr<mir::time::Alarm> create_alarm(
86 std::unique_ptr<LockableCallback> callback)
override;
88 void reprocess_all_sources();
91 bool should_process_actions_for(
void const* owner);
92 void handle_exception(std::exception_ptr
const& e);
94 std::shared_ptr<time::Clock>
const clock;
96 std::atomic<bool> running;
99 std::mutex do_not_process_mutex;
100 std::vector<void const*> do_not_process;
101 std::function<void()> before_iteration_hook;
102 std::exception_ptr main_loop_exception;
All things Mir.
Definition: atomic_callback.h:25
Definition: glib_main_loop.h:38
GMainContextHandle()
Definition: glib_main_loop.cpp:108
std::unique_ptr< T, ModuleDeleter< T >> UniqueModulePtr
Use UniqueModulePtr to ensure that your loadable libray outlives instances created within it...
Definition: module_deleter.h:83
Definition: glib_main_loop.h:50
std::function< void()> ServerAction
Definition: server_action_queue.h:27
Definition: main_loop.h:29
Definition: glib_main_loop_sources.h:83
Definition: glib_main_loop_sources.h:101
std::promise< bool > stop
Definition: in.cpp:28
~GMainContextHandle()
Definition: glib_main_loop.cpp:115