diff options
author | Glenn Kasten <gkasten@google.com> | 2012-07-09 16:46:23 -0700 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2012-07-10 08:38:01 -0700 |
commit | 2df8f55055fe431a508148cf525df1ba40f03113 (patch) | |
tree | 1ab69032f07ee78a7de0df5c64ca801744f0ca15 /services | |
parent | a34f8ec169986c5a28600c0decaa4e2db70df8e4 (diff) | |
download | frameworks_av-2df8f55055fe431a508148cf525df1ba40f03113.zip frameworks_av-2df8f55055fe431a508148cf525df1ba40f03113.tar.gz frameworks_av-2df8f55055fe431a508148cf525df1ba40f03113.tar.bz2 |
Add comments on use of volatile for track count
and add acquire load at the read
Change-Id: Ib41a58f5b1f6af87a8bd63d3f77d2ec0e48cb479
Diffstat (limited to 'services')
-rw-r--r-- | services/audioflinger/AudioFlinger.h | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/services/audioflinger/AudioFlinger.h b/services/audioflinger/AudioFlinger.h index 29c1d9b..08c727d 100644 --- a/services/audioflinger/AudioFlinger.h +++ b/services/audioflinger/AudioFlinger.h @@ -1735,12 +1735,12 @@ mutable Mutex mLock; // mutex for process, commands and handl void incTrackCnt() { android_atomic_inc(&mTrackCnt); } void decTrackCnt() { android_atomic_dec(&mTrackCnt); } - int32_t trackCnt() const { return mTrackCnt;} + int32_t trackCnt() const { return android_atomic_acquire_load(&mTrackCnt); } void incActiveTrackCnt() { android_atomic_inc(&mActiveTrackCnt); mTailBufferCount = mMaxTailBuffers; } void decActiveTrackCnt() { android_atomic_dec(&mActiveTrackCnt); } - int32_t activeTrackCnt() const { return mActiveTrackCnt;} + int32_t activeTrackCnt() const { return android_atomic_acquire_load(&mActiveTrackCnt); } uint32_t strategy() const { return mStrategy; } void setStrategy(uint32_t strategy) @@ -1792,8 +1792,11 @@ mutable Mutex mLock; // mutex for process, commands and handl int mSessionId; // audio session ID int16_t *mInBuffer; // chain input buffer int16_t *mOutBuffer; // chain output buffer - volatile int32_t mActiveTrackCnt; // number of active tracks connected - volatile int32_t mTrackCnt; // number of tracks connected + + // 'volatile' here means these are accessed with atomic operations instead of mutex + volatile int32_t mActiveTrackCnt; // number of active tracks connected + volatile int32_t mTrackCnt; // number of tracks connected + int32_t mTailBufferCount; // current effect tail buffer count int32_t mMaxTailBuffers; // maximum effect tail buffers bool mOwnInBuffer; // true if the chain owns its input buffer |