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

Commit 7e1ed44b authored by Jon Spivack's avatar Jon Spivack Committed by android-build-merger
Browse files

Merge "Unregister Waiter in waitForService"

am: e395da30

Change-Id: I6ddab6daf386852ba0bd7e159aabfe839450991b
parents 494e024e e395da30
Loading
Loading
Loading
Loading
+14 −2
Original line number Diff line number Diff line
@@ -280,6 +280,15 @@ sp<IBinder> ServiceManagerShim::waitForService(const String16& name16)
        std::condition_variable mCv;
    };

    // Simple RAII object to ensure a function call immediately before going out of scope
    class Defer {
    public:
        Defer(std::function<void()>&& f) : mF(std::move(f)) {}
        ~Defer() { mF(); }
    private:
        std::function<void()> mF;
    };

    const std::string name = String8(name16).c_str();

    sp<IBinder> out;
@@ -293,6 +302,9 @@ sp<IBinder> ServiceManagerShim::waitForService(const String16& name16)
            name, waiter).isOk()) {
        return nullptr;
    }
    Defer unregister ([&] {
        mTheRealServiceManager->unregisterForNotifications(name, waiter);
    });

    while(true) {
        {