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

Commit f4f2d656 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Fix deadlock in cuttlefish/default implementation" into rvc-dev am:...

Merge "Fix deadlock in cuttlefish/default implementation" into rvc-dev am: d183abf8 am: 80b3cdc9

Change-Id: Ied6c00e7c9aac9ce5570e5b8071880e5f2c6316f
parents 2e538f81 80b3cdc9
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -49,8 +49,8 @@ Return<V1_0::IGnssMeasurement::GnssMeasurementStatus> GnssMeasurement::setCallba

Return<void> GnssMeasurement::close() {
    ALOGD("close");
    std::unique_lock<std::mutex> lock(mMutex);
    stop();
    std::unique_lock<std::mutex> lock(mMutex);
    sCallback = nullptr;
    return Void();
}
+4 −0
Original line number Diff line number Diff line
@@ -61,10 +61,14 @@ struct GnssMeasurement : public IGnssMeasurement {
    void stop();
    void reportMeasurement(const GnssData&);

    // Guarded by mMutex
    static sp<IGnssMeasurementCallback> sCallback;

    std::atomic<long> mMinIntervalMillis;
    std::atomic<bool> mIsActive;
    std::thread mThread;

    // Synchronization lock for sCallback
    mutable std::mutex mMutex;
};

+1 −1
Original line number Diff line number Diff line
@@ -55,8 +55,8 @@ Return<GnssAntennaInfo::GnssAntennaInfoStatus> GnssAntennaInfo::setCallback(

Return<void> GnssAntennaInfo::close() {
    ALOGD("close");
    std::unique_lock<std::mutex> lock(mMutex);
    stop();
    std::unique_lock<std::mutex> lock(mMutex);
    sCallback = nullptr;
    return Void();
}
+5 −1
Original line number Diff line number Diff line
@@ -47,10 +47,14 @@ struct GnssAntennaInfo : public IGnssAntennaInfo {
    void reportAntennaInfo(
            const hidl_vec<IGnssAntennaInfoCallback::GnssAntennaInfo>& antennaInfo) const;

    // Guarded by mMutex
    static sp<IGnssAntennaInfoCallback> sCallback;

    std::atomic<long> mMinIntervalMillis;
    std::atomic<bool> mIsActive;
    std::thread mThread;

    // Synchronization lock for sCallback
    mutable std::mutex mMutex;
};

+1 −1
Original line number Diff line number Diff line
@@ -47,8 +47,8 @@ Return<V1_0::IGnssMeasurement::GnssMeasurementStatus> GnssMeasurement::setCallba

Return<void> GnssMeasurement::close() {
    ALOGD("close");
    std::unique_lock<std::mutex> lock(mMutex);
    stop();
    std::unique_lock<std::mutex> lock(mMutex);
    sCallback_2_1 = nullptr;
    sCallback_2_0 = nullptr;
    return Void();
Loading