From 8701ed0270dd8da44efff5e19f3b0b6d3cac5b8b Mon Sep 17 00:00:00 2001 From: James Zern Date: Wed, 9 Jul 2014 12:45:21 -0700 Subject: update vp9_thread.c pull the latest from libwebp. Original source: http://git.chromium.org/webm/libwebp.git 100644 blob 264210ba2807e4da47eb5d18c04cf869d89b9784 src/utils/thread.c commit 46fd44c1042c9903b2f1ab87e9f200a13c7e702d Author: James Zern Date: Tue Jul 8 19:53:28 2014 -0700 thread: remove harmless race on status_ in End() if a thread was still doing work when End() was called there'd be a race on worker->status_. in these cases, however, the specific value is meaningless as it would be >= OK and the thread would have been shut down properly, but we'll check 'impl_' instead to avoid any potential TSan/DRD reports. Change-Id: Ib93cbc226a099f07761f7bad765549dffb8054b1 Change-Id: Ib0ef25737b3c6d017fa74822e21ed58508230b91 --- vp9/common/vp9_thread.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'vp9/common') diff --git a/vp9/common/vp9_thread.c b/vp9/common/vp9_thread.c index 348bdf6db..1c6aec032 100644 --- a/vp9/common/vp9_thread.c +++ b/vp9/common/vp9_thread.c @@ -11,7 +11,7 @@ // // Original source: // http://git.chromium.org/webm/libwebp.git -// 100644 blob 08ad4e1fecba302bf1247645e84a7d2779956bc3 src/utils/thread.c +// 100644 blob 264210ba2807e4da47eb5d18c04cf869d89b9784 src/utils/thread.c #include #include // for memset() @@ -144,18 +144,19 @@ static void launch(VP9Worker *const worker) { } static void end(VP9Worker *const worker) { - if (worker->status_ >= OK) { #if CONFIG_MULTITHREAD + if (worker->impl_ != NULL) { change_state(worker, NOT_OK); pthread_join(worker->impl_->thread_, NULL); pthread_mutex_destroy(&worker->impl_->mutex_); pthread_cond_destroy(&worker->impl_->condition_); + vpx_free(worker->impl_); + worker->impl_ = NULL; + } #else - worker->status_ = NOT_OK; + worker->status_ = NOT_OK; + assert(worker->impl_ == NULL); #endif - } - vpx_free(worker->impl_); - worker->impl_ = NULL; assert(worker->status_ == NOT_OK); } -- cgit v1.2.3