message: use C++11 static variables as memory barrier
diff: @@ -364,15 +364,8 @@ bool __termination; // skip some cleanups, because process is terminating
  cv::Mutex& getInitializationMutex();
  -// TODO Memory barriers?
  #define CV_SINGLETON_LAZY_INIT_(TYPE, INITIALIZER, RET_VALUE) \
  - static TYPE* volatile instance = NULL; \
  - if (instance == NULL) \
  - { \
  - cv::AutoLock lock(cv::getInitializationMutex()); \
  - if (instance == NULL) \
  - instance = INITIALIZER; \
  - } \
  + static TYPE* const instance = INITIALIZER; \
  return RET_VALUE;
  #define CV_SINGLETON_LAZY_INIT(TYPE, INITIALIZER) CV_SINGLETON_LAZY_INIT_(TYPE, INITIALIZER, instance)
  