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

Commit d183abf8 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents 239d6316 f3cb5562
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