diff options
author | zunkyu.lee <zunkyu.lee@lge.com> | 2014-11-07 15:47:32 +0900 |
---|---|---|
committer | Glenn Kasten <gkasten@google.com> | 2014-12-08 16:04:24 -0800 |
commit | 82a69ea8b090d57bff5e02774688b546a711bbb8 (patch) | |
tree | b4712a7df9c4431103b1d1a4a77ad5b237703637 /services/audioflinger | |
parent | ca7b4bc40604ae4f06718cb34945fdab278987ae (diff) | |
download | frameworks_av-82a69ea8b090d57bff5e02774688b546a711bbb8.zip frameworks_av-82a69ea8b090d57bff5e02774688b546a711bbb8.tar.gz frameworks_av-82a69ea8b090d57bff5e02774688b546a711bbb8.tar.bz2 |
Prevent ANR when AudioTrack is paused or re-routed
If ClientProxy was interrupted by AudioTrack::pause() just before futex syscall() in obtainBuffer() was called,
It will not call releaseBuffer to wake up AudioTrackThread.
It puts the AudioTrackThread to sleep and then a deadlock occurs.
In this case, CBLK_INTERRUPT flags can't prevent a deadlock,
so this patch set mFutex to FUTEX_WAKE during interrupt() to avoid deadlock.
A similar problem could occur due to re-route or recovery after mediaserver death.
Bug: 18641665
Change-Id: I66fcae43af9a91eb55f6cdb52c644ee6c0999772
Diffstat (limited to 'services/audioflinger')
0 files changed, 0 insertions, 0 deletions