summaryrefslogtreecommitdiffstats
path: root/media/libmedia/AudioPolicy.cpp
diff options
context:
space:
mode:
authorzunkyu.lee <zunkyu.lee@lge.com>2014-11-07 15:47:32 +0900
committerGlenn Kasten <gkasten@google.com>2014-12-08 16:04:24 -0800
commit82a69ea8b090d57bff5e02774688b546a711bbb8 (patch)
treeb4712a7df9c4431103b1d1a4a77ad5b237703637 /media/libmedia/AudioPolicy.cpp
parentca7b4bc40604ae4f06718cb34945fdab278987ae (diff)
downloadframeworks_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 'media/libmedia/AudioPolicy.cpp')
0 files changed, 0 insertions, 0 deletions