Mercurial > hg > orthanc
diff Core/MultiThreading/BagOfRunnablesBySteps.cpp @ 431:16b52fb8d034
fix by cyril paulus
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Sat, 11 May 2013 12:19:20 +0200 |
parents | bdd72233b105 |
children | 2d0a347e8cfc |
line wrap: on
line diff
--- a/Core/MultiThreading/BagOfRunnablesBySteps.cpp Wed May 08 15:16:13 2013 +0200 +++ b/Core/MultiThreading/BagOfRunnablesBySteps.cpp Sat May 11 12:19:20 2013 +0200 @@ -102,7 +102,11 @@ assert(t.get() != NULL); assert(bag->pimpl_->activeThreads_.find(r.get()) == bag->pimpl_->activeThreads_.end()); - t->join(); + if (t->joinable()) + { + t->join(); + } + bag->pimpl_->oneThreadIsJoined_.notify_one(); } @@ -128,7 +132,11 @@ // Stop the finish listener pimpl_->stopFinishListener_ = true; pimpl_->oneThreadIsStopped_.notify_one(); // Awakens the listener - pimpl_->finishListener_->join(); + + if (pimpl_->finishListener_->joinable()) + { + pimpl_->finishListener_->join(); + } }