You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@thrift.apache.org by je...@apache.org on 2020/03/29 16:29:36 UTC

[thrift] branch master updated: THRIFT-4963: Fix deadlock in ThreadManager::Worker::run Client: cpp Patch: Kanishth Karthi

This is an automated email from the ASF dual-hosted git repository.

jensg pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/thrift.git


The following commit(s) were added to refs/heads/master by this push:
     new 8ec5857  THRIFT-4963: Fix deadlock in ThreadManager::Worker::run Client: cpp Patch: Kanishth Karthi
8ec5857 is described below

commit 8ec585793c63c765a18ec97335eda6b89b494ab5
Author: Kanishth Karthik <ka...@gmail.com>
AuthorDate: Thu Mar 26 01:29:50 2020 +0530

    THRIFT-4963: Fix deadlock in ThreadManager::Worker::run
    Client: cpp
    Patch: Kanishth Karthi
    
    This closes #2070
---
 lib/cpp/src/thrift/concurrency/ThreadManager.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lib/cpp/src/thrift/concurrency/ThreadManager.cpp b/lib/cpp/src/thrift/concurrency/ThreadManager.cpp
index 25b838a..e917f4a 100644
--- a/lib/cpp/src/thrift/concurrency/ThreadManager.cpp
+++ b/lib/cpp/src/thrift/concurrency/ThreadManager.cpp
@@ -319,7 +319,9 @@ public:
 
         } else if (manager_->expireCallback_) {
           // The only other state the task could have been in is TIMEDOUT (see above)
+          manager_->mutex_.unlock();
           manager_->expireCallback_(task->getRunnable());
+          manager_->mutex_.lock();
           manager_->expiredCount_++;
         }
       }