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

@ -1085,11 +1085,14 @@ public:
for(size_t i = 0; i < threads.size(); i++)
{
std::vector<void*>& thread_slots = threads[i]->slots;
if (thread_slots.size() > slotIdx && thread_slots[slotIdx])
if(threads[i])
{
dataVec.push_back(thread_slots[slotIdx]);
threads[i]->slots[slotIdx] = 0;
std::vector<void*>& thread_slots = threads[i]->slots;
if (thread_slots.size() > slotIdx && thread_slots[slotIdx])
{
dataVec.push_back(thread_slots[slotIdx]);
threads[i]->slots[slotIdx] = 0;
}
}
}
@ -1116,9 +1119,12 @@ public:
for(size_t i = 0; i < threads.size(); i++)
{
std::vector<void*>& thread_slots = threads[i]->slots;
if (thread_slots.size() > slotIdx && thread_slots[slotIdx])
dataVec.push_back(thread_slots[slotIdx]);
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]);
}
}
}