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

Commit f9e3b811 authored by Jiabin Huang's avatar Jiabin Huang Committed by Android (Google) Code Review
Browse files

Merge "Add thread safety annotation in libaaudio." into main

parents 5549fe99 fb650b0d
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -203,12 +203,12 @@ public:

private:
    android::Mutex                          mServiceLock;
    std::shared_ptr<AAudioServiceInterface> mAdapter;
    std::shared_ptr<AAudioServiceInterface> mAdapter PT_GUARDED_BY(mServiceLock);
    android::sp<AAudioClient>               mAAudioClient;

    std::shared_ptr<AAudioServiceInterface> getAAudioService();
    std::shared_ptr<AAudioServiceInterface> getAAudioService() EXCLUDES(mServiceLock);

    void dropAAudioService();
    void dropAAudioService() EXCLUDES(mServiceLock);

};

+0 −2
Original line number Diff line number Diff line
@@ -117,8 +117,6 @@ private:
    bool                    mFreeRunning{false};
    android::fifo_counter_t mDataReadCounter{0}; // only used if free-running
    android::fifo_counter_t mDataWriteCounter{0}; // only used if free-running

    std::mutex mDataQueueLock;
};

} // namespace aaudio
+8 −8
Original line number Diff line number Diff line
@@ -172,7 +172,7 @@ public:
        return createThread_l(periodNanoseconds, threadProc, threadArg);
    }

    aaudio_result_t joinThread(void **returnArg);
    aaudio_result_t joinThread(void **returnArg) EXCLUDES(mStreamLock);

    virtual aaudio_result_t registerThread() {
        return AAUDIO_OK;
@@ -424,7 +424,7 @@ public:
    }

    // This is used by the AudioManager to duck and mute the stream when changing audio focus.
    void setDuckAndMuteVolume(float duckAndMuteVolume);
    void setDuckAndMuteVolume(float duckAndMuteVolume) EXCLUDES(mStreamLock);

    float getDuckAndMuteVolume() const {
        return mDuckAndMuteVolume;
@@ -459,11 +459,11 @@ public:
        mPlayerBase->unregisterWithAudioManager();
    }

    aaudio_result_t systemStart();
    aaudio_result_t systemStart() EXCLUDES(mStreamLock);

    aaudio_result_t systemPause();
    aaudio_result_t systemPause() EXCLUDES(mStreamLock);

    aaudio_result_t safeFlush();
    aaudio_result_t safeFlush() EXCLUDES(mStreamLock);

    /**
     * This is called when an app calls AAudioStream_requestStop();
@@ -474,14 +474,14 @@ public:
    /**
     * This is called internally when an app callback returns AAUDIO_CALLBACK_RESULT_STOP.
     */
    aaudio_result_t systemStopInternal();
    aaudio_result_t systemStopInternal() EXCLUDES(mStreamLock);

    /**
     * Safely RELEASE a stream after taking mStreamLock and checking
     * to make sure we are not being called from a callback.
     * @return AAUDIO_OK or a negative error
     */
    aaudio_result_t safeRelease();
    aaudio_result_t safeRelease() EXCLUDES(mStreamLock);

    /**
     * Safely RELEASE and CLOSE a stream after taking mStreamLock and checking
@@ -490,7 +490,7 @@ public:
     */
    aaudio_result_t safeReleaseClose();

    aaudio_result_t safeReleaseCloseInternal();
    aaudio_result_t safeReleaseCloseInternal() EXCLUDES(mStreamLock);

protected: