From 1dd14e1324d5506ccc0151380629adb33b6db9c6 Mon Sep 17 00:00:00 2001 From: Timothy Flynn Date: Fri, 9 Dec 2022 15:17:52 -0500 Subject: [PATCH] Ladybird: Quit SQLServer when its connected client exits When Ladybird exits, SQLServer can get stuck spinning at 100% CPU after the socket connection is closed. This changes the client to quit the event loop when that disconnect happens to ensure that SQLServer is properly destroyed. --- Ladybird/SQLServer/main.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Ladybird/SQLServer/main.cpp b/Ladybird/SQLServer/main.cpp index c2c06cfa69..d41cd6fedc 100644 --- a/Ladybird/SQLServer/main.cpp +++ b/Ladybird/SQLServer/main.cpp @@ -36,6 +36,9 @@ ErrorOr serenity_main(Main::Arguments arguments) auto client = TRY(SQLServer::ConnectionFromClient::try_create(move(socket), 1)); client->set_fd_passing_socket(TRY(Core::Stream::LocalSocket::adopt_fd(sql_server_fd_passing_socket))); client->set_database_path(move(database_path)); + client->on_disconnect = [&]() { + loop.quit(0); + }; return loop.exec(); }