diff --git a/Userland/Libraries/LibIPC/Connection.h b/Userland/Libraries/LibIPC/Connection.h index 899eaa6412..c6b281aa18 100644 --- a/Userland/Libraries/LibIPC/Connection.h +++ b/Userland/Libraries/LibIPC/Connection.h @@ -55,6 +55,7 @@ public: { m_responsiveness_timer = Core::Timer::create_single_shot(3000, [this] { may_have_become_unresponsive(); }); m_notifier->on_ready_to_read = [this] { + NonnullRefPtr protect = *this; drain_messages_from_peer(); handle_messages(); }; @@ -125,6 +126,13 @@ public: return response; } + template + OwnPtr send_sync_but_allow_failure(Args&&... args) + { + post_message(RequestType(forward(args)...)); + return wait_for_specific_endpoint_message(); + } + virtual void may_have_become_unresponsive() { } virtual void did_become_responsive() { }