Update matrix.cpp

Fix race condition in getDefaultAllocator and setDefaultAllocator interaction / not threadsafe currently
This commit is contained in:
Matthias Grundmann 2017-05-10 16:04:02 -07:00 committed by Alexander Alekhin
parent d72ddc8255
commit cf4e9e5ce2

View File

@ -222,16 +222,20 @@ public:
};
namespace
{
MatAllocator* g_matAllocator = NULL;
MatAllocator* volatile g_matAllocator = NULL;
}
MatAllocator* Mat::getDefaultAllocator()
{
if (g_matAllocator == NULL)
{
cv::AutoLock lock(cv::getInitializationMutex());
if (g_matAllocator == NULL)
{
g_matAllocator = getStdAllocator();
}
}
return g_matAllocator;
}
void Mat::setDefaultAllocator(MatAllocator* allocator)