diff --git a/sandboxed_api/sandbox2/global_forkclient.cc b/sandboxed_api/sandbox2/global_forkclient.cc index 049b8d4..7d8efd0 100644 --- a/sandboxed_api/sandbox2/global_forkclient.cc +++ b/sandboxed_api/sandbox2/global_forkclient.cc @@ -35,6 +35,7 @@ #include "absl/strings/str_join.h" #include "absl/strings/str_split.h" #include "absl/strings/string_view.h" +#include "absl/synchronization/mutex.h" #include "sandboxed_api/embed_file.h" #include "sandboxed_api/sandbox2/comms.h" #include "sandboxed_api/sandbox2/fork_client.h" @@ -206,4 +207,9 @@ pid_t GlobalForkClient::GetPid() { EnsureStartedLocked(GlobalForkserverStartMode::kOnDemand); return instance_->fork_client_.pid(); } + +bool GlobalForkClient::IsStarted() { + absl::ReaderMutexLock lock(&instance_mutex_); + return instance_ != nullptr; +} } // namespace sandbox2 diff --git a/sandboxed_api/sandbox2/global_forkclient.h b/sandboxed_api/sandbox2/global_forkclient.h index 99054c9..04a0cfa 100644 --- a/sandboxed_api/sandbox2/global_forkclient.h +++ b/sandboxed_api/sandbox2/global_forkclient.h @@ -54,6 +54,7 @@ class GlobalForkClient { EnsureStarted(GlobalForkserverStartMode::kOnDemand); } static void Shutdown() ABSL_LOCKS_EXCLUDED(instance_mutex_); + static bool IsStarted() ABSL_LOCKS_EXCLUDED(instance_mutex_); private: friend void StartGlobalForkserverFromLibCtor();