use seq_cst for openmp atomic read/write

This commit is contained in:
conrad
2025-08-13 17:38:17 +10:00
parent 98c13f4bc7
commit d77fa2bbb4
2 changed files with 5 additions and 5 deletions
+3 -3
View File
@@ -615,7 +615,7 @@ Cube<eT>::get_mat_ptr(const uword in_slice) const
#if defined(ARMA_USE_OPENMP)
{
#pragma omp atomic read
#pragma omp atomic read seq_cst
mat_ptr = mat_ptrs[in_slice];
}
#elif defined(ARMA_USE_STD_MUTEX)
@@ -634,12 +634,12 @@ Cube<eT>::get_mat_ptr(const uword in_slice) const
{
#pragma omp critical (arma_Cube_mat_ptrs)
{
#pragma omp atomic read
#pragma omp atomic read seq_cst
mat_ptr = mat_ptrs[in_slice];
if(mat_ptr == nullptr) { mat_ptr = create_mat_ptr(in_slice); }
#pragma omp atomic write
#pragma omp atomic write seq_cst
mat_ptrs[in_slice] = mat_ptr;
}
}
+2 -2
View File
@@ -312,7 +312,7 @@ struct state_type
int out;
#if defined(ARMA_USE_OPENMP)
#pragma omp atomic read
#pragma omp atomic read seq_cst
out = state;
#elif defined(ARMA_USE_STD_MUTEX)
out = state.load();
@@ -328,7 +328,7 @@ struct state_type
operator= (const int in_state)
{
#if defined(ARMA_USE_OPENMP)
#pragma omp atomic write
#pragma omp atomic write seq_cst
state = in_state;
#elif defined(ARMA_USE_STD_MUTEX)
state.store(in_state);