mirror of
https://github.com/opencv/opencv.git
synced 2025-01-18 22:44:02 +08:00
Added a check of the DetectionBasedTracker's inner state in the main thread function of this class.
This change should fix a multithread bug in the class.
This commit is contained in:
parent
32c7eeca78
commit
32878f8577
@ -241,6 +241,11 @@ void DetectionBasedTracker::SeparateDetectionWork::workcycleObjectDetector()
|
||||
CV_Assert(stateThread==STATE_THREAD_WORKING_SLEEPING);
|
||||
|
||||
pthread_mutex_lock(&mutex);
|
||||
if (!isWorking()) {//it is a rare case, but may cause a crash
|
||||
LOGD("DetectionBasedTracker::SeparateDetectionWork::workcycleObjectDetector() --- go out from the workcycle from inner part of lock just before waiting");
|
||||
pthread_mutex_unlock(&mutex);
|
||||
break;
|
||||
}
|
||||
CV_Assert(stateThread==STATE_THREAD_WORKING_SLEEPING);
|
||||
pthread_cond_wait(&objectDetectorRun, &mutex);
|
||||
if (isWorking()) {
|
||||
|
Loading…
Reference in New Issue
Block a user