core(tls): hide assertions from Thread Sanitizer

pull/9241/head
Alexander Alekhin 8 years ago
parent 68ef903a7c
commit d35422b523
  1. 11
      modules/core/include/opencv2/core/cvdef.h
  2. 4
      modules/core/src/system.cpp

@ -327,6 +327,17 @@ Cv64suf;
# endif
#endif
/****************************************************************************************\
* Thread sanitizer *
\****************************************************************************************/
#ifndef CV_THREAD_SANITIZER
# if defined(__has_feature)
# if __has_feature(thread_sanitizer)
# define CV_THREAD_SANITIZER
# endif
# endif
#endif
/****************************************************************************************\
* exchange-add operation for atomic operations on reference counters *
\****************************************************************************************/

@ -1396,7 +1396,9 @@ public:
// Get data by TLS storage index
void* getData(size_t slotIdx) const
{
#ifndef CV_THREAD_SANITIZER
CV_Assert(tlsSlotsSize > slotIdx);
#endif
ThreadData* threadData = (ThreadData*)tls.GetData();
if(threadData && threadData->slots.size() > slotIdx)
@ -1426,7 +1428,9 @@ public:
// Set data to storage index
void setData(size_t slotIdx, void* pData)
{
#ifndef CV_THREAD_SANITIZER
CV_Assert(tlsSlotsSize > slotIdx);
#endif
ThreadData* threadData = (ThreadData*)tls.GetData();
if(!threadData)

Loading…
Cancel
Save