diff --git a/lapack/getrf/getrf_parallel.c b/lapack/getrf/getrf_parallel.c index 91d97a791..b48765e55 100644 --- a/lapack/getrf/getrf_parallel.c +++ b/lapack/getrf/getrf_parallel.c @@ -237,10 +237,9 @@ static int inner_advanced_thread(blas_arg_t *args, BLASLONG *range_m, BLASLONG * blasint *ipiv = (blasint *)args -> c; - //_Atomic BLASLONG jw; - _Atomic BLASLONG *flag = (_Atomic BLASLONG *)args -> d; + volatile BLASLONG *flag = (volatile BLASLONG *)args -> d; if (args -> a == NULL) { TRSM_ILTCOPY(k, k, (FLOAT *)args -> b, lda, 0, sb); @@ -320,21 +319,21 @@ static int inner_advanced_thread(blas_arg_t *args, BLASLONG *range_m, BLASLONG * } MB; for (i = 0; i < args -> nthreads; i++) { -LOCK_COMMAND(&getrf_lock); + LOCK_COMMAND(&getrf_lock); job[mypos].working[i][CACHE_LINE_SIZE * bufferside] = (BLASLONG)buffer[bufferside]; -UNLOCK_COMMAND(&getrf_lock); + UNLOCK_COMMAND(&getrf_lock); } } -LOCK_COMMAND(&getrf_flag_lock); + LOCK_COMMAND(&getrf_flag_lock); flag[mypos * CACHE_LINE_SIZE] = 0; -UNLOCK_COMMAND(&getrf_flag_lock); + UNLOCK_COMMAND(&getrf_flag_lock); if (m == 0) { for (xxx = 0; xxx < DIVIDE_RATE; xxx++) { -LOCK_COMMAND(&getrf_lock); + LOCK_COMMAND(&getrf_lock); job[mypos].working[mypos][CACHE_LINE_SIZE * xxx] = 0; -UNLOCK_COMMAND(&getrf_lock); + UNLOCK_COMMAND(&getrf_lock); } } @@ -378,9 +377,9 @@ UNLOCK_COMMAND(&getrf_lock); MB; if (is + min_i >= m) { -LOCK_COMMAND(&getrf_lock); + LOCK_COMMAND(&getrf_lock); job[current].working[mypos][CACHE_LINE_SIZE * bufferside] = 0; -UNLOCK_COMMAND(&getrf_lock); + UNLOCK_COMMAND(&getrf_lock); } }