mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-29 16:21:29 +00:00
Ladybird: Use Core::Process facilities to spawn singleton processes
This commit is contained in:
parent
c723fc9611
commit
c11019ebc1
Notes:
sideshowbarker
2024-07-17 08:13:43 +09:00
Author: https://github.com/trflynn89 Commit: https://github.com/SerenityOS/serenity/commit/c11019ebc1 Pull-request: https://github.com/SerenityOS/serenity/pull/24092 Reviewed-by: https://github.com/ADKaster ✅
|
@ -8,7 +8,6 @@
|
|||
#include "Utilities.h"
|
||||
#include <AK/Enumerate.h>
|
||||
#include <LibCore/Process.h>
|
||||
#include <LibCore/SingletonProcess.h>
|
||||
#include <LibWebView/ProcessManager.h>
|
||||
|
||||
enum class RegisterWithProcessManager {
|
||||
|
@ -62,6 +61,19 @@ static ErrorOr<NonnullRefPtr<ClientType>> launch_generic_server_process(
|
|||
});
|
||||
}
|
||||
|
||||
template<typename ClientType, typename... ClientArguments>
|
||||
static ErrorOr<NonnullRefPtr<ClientType>> launch_singleton_server_process(
|
||||
StringView server_name,
|
||||
ReadonlySpan<ByteString> candidate_server_paths,
|
||||
Vector<ByteString> const& arguments,
|
||||
RegisterWithProcessManager register_with_process_manager,
|
||||
ClientArguments&&... client_arguments)
|
||||
{
|
||||
return launch_server_process_impl<ClientType>(server_name, candidate_server_paths, arguments, register_with_process_manager, [&](auto options) {
|
||||
return Core::IPCProcess::spawn_singleton<ClientType>(move(options), forward<ClientArguments>(client_arguments)...);
|
||||
});
|
||||
}
|
||||
|
||||
ErrorOr<NonnullRefPtr<WebView::WebContentClient>> launch_web_content_process(
|
||||
WebView::ViewImplementation& view,
|
||||
ReadonlySpan<ByteString> candidate_web_content_paths,
|
||||
|
@ -161,10 +173,7 @@ ErrorOr<NonnullRefPtr<SQL::SQLClient>> launch_sql_server_process(ReadonlySpan<By
|
|||
arguments.append(server.value());
|
||||
}
|
||||
|
||||
auto [client, pid] = TRY(Core::launch_singleton_process<SQL::SQLClient>("SQLServer"sv, candidate_sql_server_paths, arguments));
|
||||
WebView::ProcessManager::the().add_process(WebView::ProcessType::SQLServer, pid);
|
||||
|
||||
return client;
|
||||
return launch_singleton_server_process<SQL::SQLClient>("SQLServer"sv, candidate_sql_server_paths, arguments, RegisterWithProcessManager::Yes);
|
||||
}
|
||||
|
||||
ErrorOr<IPC::File> connect_new_request_server_client(Protocol::RequestClient& client)
|
||||
|
|
Loading…
Reference in a new issue