diff options
author | Yi-Yo Chiang <yochiang@google.com> | 2022-08-11 07:01:11 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2022-08-11 07:01:11 +0000 |
commit | a08c114f980664d5d876dde7349108810ebc0bd9 (patch) | |
tree | b3e036517c6509fc92669595e9c343439c72947e | |
parent | 49430242edbbf27c2e632a9dfd6fac178231eca9 (diff) | |
parent | 81925c61bcb2abb34be5c5854cee960d1eea68c8 (diff) | |
download | gsid-a08c114f980664d5d876dde7349108810ebc0bd9.tar.gz |
libgsid: Document quirks of GetGsiService() am: 457b9c773b am: f9a092151b am: 81925c61bc
Original change: https://android-review.googlesource.com/c/platform/system/gsid/+/2179376
Change-Id: If8eeda5753d104764cd59ba611b637f68d4c0478
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | daemon.cpp | 2 | ||||
-rw-r--r-- | gsi_service.cpp | 4 | ||||
-rw-r--r-- | gsi_service.h | 2 | ||||
-rw-r--r-- | gsi_tool.cpp | 3 | ||||
-rw-r--r-- | include/libgsi/libgsi.h | 2 | ||||
-rw-r--r-- | include/libgsi/libgsid.h | 4 | ||||
-rw-r--r-- | libgsid.cpp | 2 |
7 files changed, 12 insertions, 7 deletions
@@ -65,7 +65,7 @@ int main(int argc, char** argv) { } } - android::gsi::GsiService::Register(); + android::gsi::GsiService::Register(android::gsi::kGsiServiceName); { sp<ProcessState> ps(ProcessState::self()); ps->startThreadPool(); diff --git a/gsi_service.cpp b/gsi_service.cpp index 10bbb51..75f9286 100644 --- a/gsi_service.cpp +++ b/gsi_service.cpp @@ -87,10 +87,10 @@ GsiService::GsiService() { progress_ = {}; } -void GsiService::Register() { +void GsiService::Register(const std::string& name) { auto lazyRegistrar = LazyServiceRegistrar::getInstance(); android::sp<GsiService> service = new GsiService(); - auto ret = lazyRegistrar.registerService(service, kGsiServiceName); + auto ret = lazyRegistrar.registerService(service, name); if (ret != android::OK) { LOG(FATAL) << "Could not register gsi service: " << ret; diff --git a/gsi_service.h b/gsi_service.h index c50c101..3c4c278 100644 --- a/gsi_service.h +++ b/gsi_service.h @@ -36,7 +36,7 @@ namespace gsi { class GsiService : public BinderService<GsiService>, public BnGsiService { public: - static void Register(); + static void Register(const std::string& name); binder::Status openInstall(const std::string& install_dir, int* _aidl_return) override; binder::Status closeInstall(int32_t* _aidl_return) override; diff --git a/gsi_tool.cpp b/gsi_tool.cpp index a6a79a5..181452b 100644 --- a/gsi_tool.cpp +++ b/gsi_tool.cpp @@ -35,6 +35,7 @@ #include <android-base/strings.h> #include <android-base/unique_fd.h> #include <android/gsi/IGsiService.h> +#include <binder/ProcessState.h> #include <cutils/android_reboot.h> #include <libgsi/libgsi.h> #include <libgsi/libgsid.h> @@ -714,6 +715,8 @@ static int usage(int /* argc */, char* argv[]) { int main(int argc, char** argv) { android::base::InitLogging(argv, android::base::StderrLogger, android::base::DefaultAborter); + // Start a threadpool to service waitForService() callbacks. + android::ProcessState::self()->startThreadPool(); android::sp<IGsiService> service = GetGsiService(); if (!service) { return EX_SOFTWARE; diff --git a/include/libgsi/libgsi.h b/include/libgsi/libgsi.h index 41898df..5318341 100644 --- a/include/libgsi/libgsi.h +++ b/include/libgsi/libgsi.h @@ -24,8 +24,6 @@ namespace android { namespace gsi { -static constexpr char kGsiServiceName[] = "gsiservice"; - #define DSU_METADATA_PREFIX "/metadata/gsi/dsu/" // These files need to be globally readable so that fs_mgr_fstab, which is diff --git a/include/libgsi/libgsid.h b/include/libgsi/libgsid.h index 46f8ef5..1229ce7 100644 --- a/include/libgsi/libgsid.h +++ b/include/libgsi/libgsid.h @@ -21,6 +21,10 @@ namespace android { namespace gsi { +static constexpr char kGsiServiceName[] = "gsiservice"; + +// Caller should start a threadpool before calling this method, otherwise waitForService() could +// block for at least 1 second. android::sp<IGsiService> GetGsiService(); } // namespace gsi diff --git a/libgsid.cpp b/libgsid.cpp index 23eeae4..4689dcd 100644 --- a/libgsid.cpp +++ b/libgsid.cpp @@ -17,7 +17,7 @@ #include <android-base/logging.h> #include <android/gsi/IGsiService.h> #include <binder/IServiceManager.h> -#include <libgsi/libgsi.h> +#include <libgsi/libgsid.h> namespace android { namespace gsi { |