fix TLS implementation (closes #5967)

This commit is contained in:
Alexander Alekhin 2016-01-14 14:38:37 +03:00
parent 3d2fc6c2fd
commit c7ccde69a8

View File

@ -1084,6 +1084,8 @@ public:
CV_Assert(tlsSlots.size() > slotIdx);
for(size_t i = 0; i < threads.size(); i++)
{
if(threads[i])
{
std::vector<void*>& thread_slots = threads[i]->slots;
if (thread_slots.size() > slotIdx && thread_slots[slotIdx])
@ -1092,6 +1094,7 @@ public:
threads[i]->slots[slotIdx] = 0;
}
}
}
tlsSlots[slotIdx] = 0;
}
@ -1115,12 +1118,15 @@ public:
CV_Assert(tlsSlots.size() > slotIdx);
for(size_t i = 0; i < threads.size(); i++)
{
if(threads[i])
{
std::vector<void*>& thread_slots = threads[i]->slots;
if (thread_slots.size() > slotIdx && thread_slots[slotIdx])
dataVec.push_back(thread_slots[slotIdx]);
}
}
}
// Set data to storage index
void setData(size_t slotIdx, void* pData)