提交 565d3dde 编写于 作者: V Vadim Pisarevsky

Merge pull request #4055 from rajithr:patch-1

...@@ -284,7 +284,16 @@ void* cv::workcycleObjectDetectorFunction(void* p) ...@@ -284,7 +284,16 @@ void* cv::workcycleObjectDetectorFunction(void* p)
{ {
CATCH_ALL_AND_LOG({ ((cv::DetectionBasedTracker::SeparateDetectionWork*)p)->workcycleObjectDetector(); }); CATCH_ALL_AND_LOG({ ((cv::DetectionBasedTracker::SeparateDetectionWork*)p)->workcycleObjectDetector(); });
try{ try{
((cv::DetectionBasedTracker::SeparateDetectionWork*)p)->lock();
((cv::DetectionBasedTracker::SeparateDetectionWork*)p)->stateThread = cv::DetectionBasedTracker::SeparateDetectionWork::STATE_THREAD_STOPPED; ((cv::DetectionBasedTracker::SeparateDetectionWork*)p)->stateThread = cv::DetectionBasedTracker::SeparateDetectionWork::STATE_THREAD_STOPPED;
((cv::DetectionBasedTracker::SeparateDetectionWork*)p)->isObjectDetectingReady=false;
((cv::DetectionBasedTracker::SeparateDetectionWork*)p)->shouldObjectDetectingResultsBeForgot=false;
#ifdef USE_STD_THREADS
((cv::DetectionBasedTracker::SeparateDetectionWork*)p)->objectDetectorThreadStartStop.notify_one();
#else
pthread_cond_signal(&(((cv::DetectionBasedTracker::SeparateDetectionWork*)p)->objectDetectorThreadStartStop));
#endif
((cv::DetectionBasedTracker::SeparateDetectionWork*)p)->unlock();
} catch(...) { } catch(...) {
LOGE0("DetectionBasedTracker: workcycleObjectDetectorFunction: ERROR concerning pointer, received as the function parameter"); LOGE0("DetectionBasedTracker: workcycleObjectDetectorFunction: ERROR concerning pointer, received as the function parameter");
} }
...@@ -437,25 +446,6 @@ void cv::DetectionBasedTracker::SeparateDetectionWork::workcycleObjectDetector() ...@@ -437,25 +446,6 @@ void cv::DetectionBasedTracker::SeparateDetectionWork::workcycleObjectDetector()
objects.clear(); objects.clear();
}// while(isWorking()) }// while(isWorking())
#ifdef USE_STD_THREADS
mtx_lock.lock();
#else
pthread_mutex_lock(&mutex);
#endif
stateThread=STATE_THREAD_STOPPED;
isObjectDetectingReady=false;
shouldObjectDetectingResultsBeForgot=false;
#ifdef USE_STD_THREADS
objectDetectorThreadStartStop.notify_one();
mtx_lock.unlock();
#else
pthread_cond_signal(&objectDetectorThreadStartStop);
pthread_mutex_unlock(&mutex);
#endif
LOGI("DetectionBasedTracker::SeparateDetectionWork::workcycleObjectDetector: Returning"); LOGI("DetectionBasedTracker::SeparateDetectionWork::workcycleObjectDetector: Returning");
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册