Disable thread sanitization when CV_USE_GLOBAL_WORKERS_COND_VAR is not set.

This fixes #19463
pull/19480/head
Vincent Rabaud 4 years ago
parent 0be18f5cb0
commit 847b16fb76
  1. 10
      modules/core/src/parallel_impl.cpp

@ -382,6 +382,16 @@ public:
}; };
// Disable thread sanitization check when CV_USE_GLOBAL_WORKERS_COND_VAR is not
// set because it triggers as the main thread reads isActive while the children
// thread writes it (but it all works out because a mutex is locked in the main
// thread and isActive re-checked).
// This is to solve issue #19463.
#if !defined(CV_USE_GLOBAL_WORKERS_COND_VAR) && defined(__clang__) && defined(__has_feature)
#if __has_feature(thread_sanitizer)
__attribute__((no_sanitize("thread")))
#endif
#endif
void WorkerThread::thread_body() void WorkerThread::thread_body()
{ {
(void)cv::utils::getThreadID(); // notify OpenCV about new thread (void)cv::utils::getThreadID(); // notify OpenCV about new thread

Loading…
Cancel
Save