AudioFlinger: Add clang thread safety annotations
Test: atest AudioTrackTest AudioRecordTest
Test: atest AAudioTests AudioTrackOffloadTest
Test: atest AudioPlaybackCaptureTest
Test: Camera YouTube
Bug: 275748373
Merged-In: Ie9191ae3791e0fdddc821f277cc1c01833cda94d
Change-Id: Ie9191ae3791e0fdddc821f277cc1c01833cda94d
diff --git a/services/audioflinger/Client.h b/services/audioflinger/Client.h
index b2ee18e..ff0d751 100644
--- a/services/audioflinger/Client.h
+++ b/services/audioflinger/Client.h
@@ -28,13 +28,16 @@
class IAfClientCallback : public virtual RefBase {
public:
- virtual audio_utils::mutex& clientMutex() const = 0;
- virtual void removeClient_l(pid_t pid) = 0;
- virtual void removeNotificationClient(pid_t pid) = 0;
+ virtual audio_utils::mutex& clientMutex() const
+ RETURN_CAPABILITY(audio_utils::AudioFlinger_ClientMutex) = 0;
+ virtual void removeClient_l(pid_t pid) REQUIRES(clientMutex()) = 0;
+ virtual void removeNotificationClient(pid_t pid) EXCLUDES_AudioFlinger_Mutex = 0;
+
+ // used indirectly by clients.
virtual status_t moveAuxEffectToIo(
int effectId,
const sp<IAfPlaybackThread>& dstThread,
- sp<IAfPlaybackThread>* srcThread) = 0; // used by indirectly by clients.
+ sp<IAfPlaybackThread>* srcThread) EXCLUDES_AudioFlinger_Mutex = 0;
};
class Client : public RefBase {