change !ARMA_DONT_USE_STD_MUTEX to ARMA_USE_STD_MUTEX
This commit is contained in:
@@ -62,7 +62,7 @@ class Cube : public BaseCube< eT, Cube<eT> >
|
||||
#if defined(ARMA_USE_OPENMP)
|
||||
using raw_mat_ptr_type = mat_type*;
|
||||
using atomic_mat_ptr_type = mat_type*;
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
using raw_mat_ptr_type = mat_type*;
|
||||
using atomic_mat_ptr_type = std::atomic<mat_type*>;
|
||||
#else
|
||||
@@ -72,7 +72,7 @@ class Cube : public BaseCube< eT, Cube<eT> >
|
||||
|
||||
atomic_mat_ptr_type* mat_ptrs = nullptr;
|
||||
|
||||
#if (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#if defined(ARMA_USE_STD_MUTEX)
|
||||
mutable std::mutex mat_mutex; // required for slice()
|
||||
#endif
|
||||
|
||||
|
||||
@@ -610,7 +610,7 @@ Cube<eT>::get_mat_ptr(const uword in_slice) const
|
||||
#pragma omp atomic read
|
||||
mat_ptr = mat_ptrs[in_slice];
|
||||
}
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
{
|
||||
mat_ptr = mat_ptrs[in_slice].load();
|
||||
}
|
||||
@@ -635,7 +635,7 @@ Cube<eT>::get_mat_ptr(const uword in_slice) const
|
||||
mat_ptrs[in_slice] = mat_ptr;
|
||||
}
|
||||
}
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
{
|
||||
const std::lock_guard<std::mutex> lock(mat_mutex);
|
||||
|
||||
|
||||
@@ -1171,7 +1171,7 @@ SpMat_MapMat_val<eT>::operator=(const eT in_val)
|
||||
(*this).set(in_val);
|
||||
}
|
||||
}
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
{
|
||||
const std::lock_guard<std::mutex> lock(s_parent.cache_mutex);
|
||||
|
||||
@@ -1204,7 +1204,7 @@ SpMat_MapMat_val<eT>::operator+=(const eT in_val)
|
||||
(*this).add(in_val);
|
||||
}
|
||||
}
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
{
|
||||
const std::lock_guard<std::mutex> lock(s_parent.cache_mutex);
|
||||
|
||||
@@ -1237,7 +1237,7 @@ SpMat_MapMat_val<eT>::operator-=(const eT in_val)
|
||||
(*this).sub(in_val);
|
||||
}
|
||||
}
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
{
|
||||
const std::lock_guard<std::mutex> lock(s_parent.cache_mutex);
|
||||
|
||||
@@ -1268,7 +1268,7 @@ SpMat_MapMat_val<eT>::operator*=(const eT in_val)
|
||||
(*this).mul(in_val);
|
||||
}
|
||||
}
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
{
|
||||
const std::lock_guard<std::mutex> lock(s_parent.cache_mutex);
|
||||
|
||||
@@ -1299,7 +1299,7 @@ SpMat_MapMat_val<eT>::operator/=(const eT in_val)
|
||||
(*this).div(in_val);
|
||||
}
|
||||
}
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
{
|
||||
const std::lock_guard<std::mutex> lock(s_parent.cache_mutex);
|
||||
|
||||
|
||||
@@ -694,7 +694,7 @@ class SpMat : public SpBase< eT, SpMat<eT> >
|
||||
// 1: CSC needs to be updated from cache (ie. cache has more recent data)
|
||||
// 2: no update required (ie. CSC and cache contain the same data)
|
||||
|
||||
#if (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#if defined(ARMA_USE_STD_MUTEX)
|
||||
arma_aligned mutable std::mutex cache_mutex;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -4445,7 +4445,7 @@ SpMat<eT>::reset_cache()
|
||||
sync_state = 0;
|
||||
}
|
||||
}
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
{
|
||||
const std::lock_guard<std::mutex> lock(cache_mutex);
|
||||
|
||||
@@ -5062,7 +5062,7 @@ SpMat<eT>::init(const SpMat<eT>& x)
|
||||
init_done = true;
|
||||
}
|
||||
}
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
if(x.sync_state == 1)
|
||||
{
|
||||
const std::lock_guard<std::mutex> lock(x.cache_mutex);
|
||||
@@ -6659,7 +6659,7 @@ SpMat<eT>::sync_cache() const
|
||||
}
|
||||
}
|
||||
}
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
{
|
||||
if(sync_state == 0)
|
||||
{
|
||||
@@ -6710,7 +6710,7 @@ SpMat<eT>::sync_csc() const
|
||||
sync_csc_simple();
|
||||
}
|
||||
}
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
if(sync_state == 1)
|
||||
{
|
||||
const std::lock_guard<std::mutex> lock(cache_mutex);
|
||||
|
||||
@@ -181,7 +181,7 @@ struct arma_config
|
||||
#endif
|
||||
|
||||
|
||||
#if (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#if defined(ARMA_USE_STD_MUTEX)
|
||||
static constexpr bool std_mutex = true;
|
||||
#else
|
||||
static constexpr bool std_mutex = false;
|
||||
|
||||
@@ -280,7 +280,7 @@ struct state_type
|
||||
{
|
||||
#if defined(ARMA_USE_OPENMP)
|
||||
int state;
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
std::atomic<int> state;
|
||||
#else
|
||||
int state;
|
||||
@@ -299,7 +299,7 @@ struct state_type
|
||||
#if defined(ARMA_USE_OPENMP)
|
||||
#pragma omp atomic read
|
||||
out = state;
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
out = state.load();
|
||||
#else
|
||||
out = state;
|
||||
@@ -315,7 +315,7 @@ struct state_type
|
||||
#if defined(ARMA_USE_OPENMP)
|
||||
#pragma omp atomic write
|
||||
state = in_state;
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
state.store(in_state);
|
||||
#else
|
||||
state = in_state;
|
||||
|
||||
@@ -74,7 +74,7 @@
|
||||
#define ARMA_GUARD_PRODUCER
|
||||
#endif
|
||||
|
||||
#if (defined(ARMA_DONT_GUARD_PRODUCER) || defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#if (defined(ARMA_DONT_GUARD_PRODUCER) || (!defined(ARMA_USE_STD_MUTEX)))
|
||||
#undef ARMA_GUARD_PRODUCER
|
||||
#endif
|
||||
|
||||
|
||||
@@ -139,6 +139,11 @@
|
||||
//// Note that ARMA_USE_OPENMP is automatically enabled when a compiler supporting OpenMP 3.1 is detected.
|
||||
#endif
|
||||
|
||||
#if !defined(ARMA_USE_STD_MUTEX)
|
||||
#define ARMA_USE_STD_MUTEX
|
||||
//// Comment out the above line to disable use of std::mutex
|
||||
#endif
|
||||
|
||||
#if !defined(ARMA_64BIT_WORD)
|
||||
// #define ARMA_64BIT_WORD
|
||||
//// Uncomment the above line if you require matrices/vectors capable of holding more than 4 billion elements.
|
||||
@@ -282,17 +287,15 @@
|
||||
#undef ARMA_USE_FORTRAN_HIDDEN_ARGS
|
||||
#endif
|
||||
|
||||
#if !defined(ARMA_DONT_USE_STD_MUTEX)
|
||||
// #define ARMA_DONT_USE_STD_MUTEX
|
||||
//// Uncomment the above line to disable use of std::mutex
|
||||
#if defined(ARMA_DONT_USE_STD_MUTEX)
|
||||
#undef ARMA_USE_STD_MUTEX
|
||||
#endif
|
||||
|
||||
// for compatibility with earlier versions of Armadillo
|
||||
#if defined(ARMA_DONT_USE_CXX11_MUTEX)
|
||||
#pragma message ("WARNING: support for ARMA_DONT_USE_CXX11_MUTEX is deprecated and will be removed;")
|
||||
#pragma message ("WARNING: use ARMA_DONT_USE_STD_MUTEX instead")
|
||||
#undef ARMA_DONT_USE_STD_MUTEX
|
||||
#define ARMA_DONT_USE_STD_MUTEX
|
||||
#undef ARMA_USE_STD_MUTEX
|
||||
#endif
|
||||
|
||||
#if defined(ARMA_DONT_USE_OPENMP)
|
||||
|
||||
@@ -139,6 +139,11 @@
|
||||
//// Note that ARMA_USE_OPENMP is automatically enabled when a compiler supporting OpenMP 3.1 is detected.
|
||||
#endif
|
||||
|
||||
#if !defined(ARMA_USE_STD_MUTEX)
|
||||
#define ARMA_USE_STD_MUTEX
|
||||
//// Comment out the above line to disable use of std::mutex
|
||||
#endif
|
||||
|
||||
#if !defined(ARMA_64BIT_WORD)
|
||||
// #define ARMA_64BIT_WORD
|
||||
//// Uncomment the above line if you require matrices/vectors capable of holding more than 4 billion elements.
|
||||
@@ -282,17 +287,15 @@
|
||||
#undef ARMA_USE_FORTRAN_HIDDEN_ARGS
|
||||
#endif
|
||||
|
||||
#if !defined(ARMA_DONT_USE_STD_MUTEX)
|
||||
// #define ARMA_DONT_USE_STD_MUTEX
|
||||
//// Uncomment the above line to disable use of std::mutex
|
||||
#if defined(ARMA_DONT_USE_STD_MUTEX)
|
||||
#undef ARMA_USE_STD_MUTEX
|
||||
#endif
|
||||
|
||||
// for compatibility with earlier versions of Armadillo
|
||||
#if defined(ARMA_DONT_USE_CXX11_MUTEX)
|
||||
#pragma message ("WARNING: support for ARMA_DONT_USE_CXX11_MUTEX is deprecated and will be removed;")
|
||||
#pragma message ("WARNING: use ARMA_DONT_USE_STD_MUTEX instead")
|
||||
#undef ARMA_DONT_USE_STD_MUTEX
|
||||
#define ARMA_DONT_USE_STD_MUTEX
|
||||
#undef ARMA_USE_STD_MUTEX
|
||||
#endif
|
||||
|
||||
#if defined(ARMA_DONT_USE_OPENMP)
|
||||
|
||||
@@ -82,7 +82,7 @@ class fft_engine_fftw3
|
||||
fftw3_plan = fftw3::plan_dft_1d<cx_type>(N, X_work.memptr(), Y_work.memptr(), fftw3_sign, fftw3_flags);
|
||||
}
|
||||
}
|
||||
#elif (!defined(ARMA_DONT_USE_STD_MUTEX))
|
||||
#elif defined(ARMA_USE_STD_MUTEX)
|
||||
{
|
||||
// NOTE: the static std::mutex approach is a "better-than-nothing" solution;
|
||||
// NOTE: the mutex declaration is only common across instances of the same fft_engine_fftw3<cx_type,bool> class type;
|
||||
|
||||
Reference in New Issue
Block a user