summaryrefslogtreecommitdiffstats
path: root/media/libstagefright/omx/OMX.cpp
diff options
context:
space:
mode:
authorGlenn Kasten <gkasten@google.com>2011-07-14 16:16:54 -0700
committerGlenn Kasten <gkasten@google.com>2011-07-14 16:16:54 -0700
commit40d76d70587ed095692615b0a1b657da861f7ffc (patch)
tree01fcf8dedb407ef440c745825ba8818ae644eba4 /media/libstagefright/omx/OMX.cpp
parent15825c7b6f6b19092a5949b4e46aea4fa229932c (diff)
downloadframeworks_av-40d76d70587ed095692615b0a1b657da861f7ffc.zip
frameworks_av-40d76d70587ed095692615b0a1b657da861f7ffc.tar.gz
frameworks_av-40d76d70587ed095692615b0a1b657da861f7ffc.tar.bz2
Bug 5031179 possible fix for assert in join
Change-Id: Id3a24c152579b8fdcfb9d66a11aa11579406a7ec
Diffstat (limited to 'media/libstagefright/omx/OMX.cpp')
-rw-r--r--media/libstagefright/omx/OMX.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/media/libstagefright/omx/OMX.cpp b/media/libstagefright/omx/OMX.cpp
index 25f30d6..bc24dbb 100644
--- a/media/libstagefright/omx/OMX.cpp
+++ b/media/libstagefright/omx/OMX.cpp
@@ -96,9 +96,14 @@ OMX::CallbackDispatcher::~CallbackDispatcher() {
mQueueChanged.signal();
}
- // Don't call join on myself
+ // A join on self can happen if the last ref to CallbackDispatcher
+ // is released within the CallbackDispatcherThread loop
status_t status = mThread->join();
- CHECK(status == NO_ERROR);
+ if (status != WOULD_BLOCK) {
+ // Other than join to self, the only other error return codes are
+ // whatever readyToRun() returns, and we don't override that
+ CHECK_EQ(status, NO_ERROR);
+ }
}
void OMX::CallbackDispatcher::post(const omx_message &msg) {