diff options
author | Andreas Huber <andih@google.com> | 2010-03-23 15:30:57 -0700 |
---|---|---|
committer | Andreas Huber <andih@google.com> | 2010-03-23 15:30:57 -0700 |
commit | 9584a0726582b6b7603032870c62b4fccd5ce076 (patch) | |
tree | a46482ea12f9c94c7821ab975221f249fdfd6df9 /media/libstagefright/AwesomePlayer.cpp | |
parent | 54b1a0550411c2fd2084d82d28934d505c37349a (diff) | |
download | frameworks_av-9584a0726582b6b7603032870c62b4fccd5ce076.zip frameworks_av-9584a0726582b6b7603032870c62b4fccd5ce076.tar.gz frameworks_av-9584a0726582b6b7603032870c62b4fccd5ce076.tar.bz2 |
Clear the local prefetcher strong reference before signalling that prepare() was cancelled early in order to avoid a race condition that occasionally triggered an assertion from the main thread.
Change-Id: I0db198fe5fd0fbe9a6c90a8e5924a2df05432c4c
related-to-bug: 2538486
Diffstat (limited to 'media/libstagefright/AwesomePlayer.cpp')
-rw-r--r-- | media/libstagefright/AwesomePlayer.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/media/libstagefright/AwesomePlayer.cpp b/media/libstagefright/AwesomePlayer.cpp index 164df72..407fd57 100644 --- a/media/libstagefright/AwesomePlayer.cpp +++ b/media/libstagefright/AwesomePlayer.cpp @@ -1153,6 +1153,8 @@ void AwesomePlayer::onPrepareAsyncEvent() { Mutex::Autolock autoLock(mLock); if (mFlags & PREPARE_CANCELLED) { LOGI("prepare was cancelled before preparing the prefetcher"); + + prefetcher.clear(); abortPrepare(UNKNOWN_ERROR); return; } |