Merge pull request #12658 from chacha21:clr-mutex

* hide use of std::mutex from /clr compilation under Visual Studio

C++11 <mutex> is not available when compiling with  /clr under Visual Studio, thus opencv cannot be easily included.
It is fixed by making a CEEMutex wrapper class, around an opaque implementation using std::mutex internally

* fixed compilation outside of Visual Studio

fixed compilation outside of Visual Studio by avoiding some macros

* fixed indentation, prepare getting rid of CEEMutex/CEELockGuard

fixed indentation
After discussion, CEEMutex and CEELockGuard can be totally removed, letting the developer in a /clr context to provide his own implementation

* remove CEEMutex/CEELockGuard
pull/12653/head
chacha21 6 years ago committed by Alexander Alekhin
parent 83efde6243
commit 9524abcd28
  1. 4
      modules/core/include/opencv2/core/utility.hpp

@ -58,7 +58,9 @@
#include <functional> #include <functional>
#if !defined(_M_CEE)
#include <mutex> // std::mutex, std::lock_guard #include <mutex> // std::mutex, std::lock_guard
#endif
namespace cv namespace cv
{ {
@ -674,8 +676,10 @@ void Mat::forEach_impl(const Functor& operation) {
/////////////////////////// Synchronization Primitives /////////////////////////////// /////////////////////////// Synchronization Primitives ///////////////////////////////
#if !defined(_M_CEE)
typedef std::recursive_mutex Mutex; typedef std::recursive_mutex Mutex;
typedef std::lock_guard<cv::Mutex> AutoLock; typedef std::lock_guard<cv::Mutex> AutoLock;
#endif
// TLS interface // TLS interface
class CV_EXPORTS TLSDataContainer class CV_EXPORTS TLSDataContainer

Loading…
Cancel
Save