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

Commit 9187f1d3 authored by Jon Spivack's avatar Jon Spivack Committed by android-build-merger
Browse files

Merge "Unregister Waiter in waitForService" am: e395da30

am: 7e1ed44b

Change-Id: Ie634000a70236872cf093c01bb57ccc895ee85a0
parents cb63549e 7e1ed44b
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) {
        {