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

Commit 8e2661ee authored by Josh Gao's avatar Josh Gao Committed by android-build-merger
Browse files

Merge changes I6c6bf61b,I3fb0b3a8 am: 3160a250 am: 9d7880fe am: 14f749c2

am: 2d30a741

Change-Id: I57a3916c312b8cc23c616232e84ad6c5507b5a39
parents 0331c2cf 2d30a741
Loading
Loading
Loading
Loading
+9 −4
Original line number Original line Diff line number Diff line
@@ -74,13 +74,18 @@ class BlockingQueue {


    template <typename Fn>
    template <typename Fn>
    void PopAll(Fn fn) {
    void PopAll(Fn fn) {
        std::vector<T> popped;

        {
            std::unique_lock<std::mutex> lock(mutex);
            std::unique_lock<std::mutex> lock(mutex);
            cv.wait(lock, [this]() { return !queue.empty(); });
            cv.wait(lock, [this]() { return !queue.empty(); });
            popped = std::move(queue);
            queue.clear();
        }


        for (const T& t : queue) {
        for (const T& t : popped) {
            fn(t);
            fn(t);
        }
        }
        queue.clear();
    }
    }
};
};


+3 −1
Original line number Original line Diff line number Diff line
@@ -422,8 +422,10 @@ static void device_disconnected(libusb_device* device) {
        if (!it->second->device_handle) {
        if (!it->second->device_handle) {
            // If the handle is null, we were never able to open the device.
            // If the handle is null, we were never able to open the device.
            unregister_usb_transport(it->second.get());
            unregister_usb_transport(it->second.get());
        }
            usb_handles.erase(it);
            usb_handles.erase(it);
        } else {
            // Closure of the transport will erase the usb_handle.
        }
    }
    }
}
}