core(tls): hide assertions from Thread Sanitizer

This commit is contained in:
Alexander Alekhin 2017-07-27 17:31:51 +03:00
parent 68ef903a7c
commit d35422b523
2 changed files with 15 additions and 0 deletions

View File

@ -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 *
\****************************************************************************************/

View File

@ -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)