Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d221c251 authored by Steven Moreland's avatar Steven Moreland
Browse files

servicemanager: remove performance hack

See details in TODO.

This hack is either causing a bug or may be preventing us from solving
another bug. Until the more critical bug can be fixed, avoiding
early-boot reads of VINTF manifest files.

Bug: 151696835
Test: run, boot, check manifest logs that HAL services register
Change-Id: Iba34afe451026a30e695d6728b4172007aaf7fbd
Merged-In: Iba34afe451026a30e695d6728b4172007aaf7fbd
parent d838f693
Loading
Loading
Loading
Loading
+15 −8
Original line number Original line Diff line number Diff line
@@ -72,13 +72,20 @@ static bool meetsDeclarationRequirements(const sp<IBinder>& binder, const std::s
#endif  // !VENDORSERVICEMANAGER
#endif  // !VENDORSERVICEMANAGER


ServiceManager::ServiceManager(std::unique_ptr<Access>&& access) : mAccess(std::move(access)) {
ServiceManager::ServiceManager(std::unique_ptr<Access>&& access) : mAccess(std::move(access)) {
#ifndef VENDORSERVICEMANAGER
// TODO(b/151696835): reenable performance hack when we solve bug, since with
    // can process these at any times, don't want to delay first VINTF client
//     this hack and other fixes, it is unlikely we will see even an ephemeral
    std::thread([] {
//     failure when the manifest parse fails. The goal is that the manifest will
        vintf::VintfObject::GetDeviceHalManifest();
//     be read incorrectly and cause the process trying to register a HAL to
        vintf::VintfObject::GetFrameworkHalManifest();
//     fail. If this is in fact an early boot kernel contention issue, then we
    }).detach();
//     will get no failure, and by its absence, be signalled to invest more
#endif  // !VENDORSERVICEMANAGER
//     effort in re-adding this performance hack.
// #ifndef VENDORSERVICEMANAGER
//     // can process these at any times, don't want to delay first VINTF client
//     std::thread([] {
//         vintf::VintfObject::GetDeviceHalManifest();
//         vintf::VintfObject::GetFrameworkHalManifest();
//     }).detach();
// #endif  // !VENDORSERVICEMANAGER
}
}
ServiceManager::~ServiceManager() {
ServiceManager::~ServiceManager() {
    // this should only happen in tests
    // this should only happen in tests