@@ -237,10 +237,9 @@ static int inner_advanced_thread(blas_arg_t *args, BLASLONG *range_m, BLASLONG *
237
237
238
238
blasint * ipiv = (blasint * )args -> c ;
239
239
240
- //_Atomic
241
240
BLASLONG jw ;
242
241
243
- _Atomic BLASLONG * flag = (_Atomic BLASLONG * )args -> d ;
242
+ volatile BLASLONG * flag = (volatile BLASLONG * )args -> d ;
244
243
245
244
if (args -> a == NULL ) {
246
245
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 *
320
319
}
321
320
MB ;
322
321
for (i = 0 ; i < args -> nthreads ; i ++ ) {
323
- LOCK_COMMAND (& getrf_lock );
322
+ LOCK_COMMAND (& getrf_lock );
324
323
job [mypos ].working [i ][CACHE_LINE_SIZE * bufferside ] = (BLASLONG )buffer [bufferside ];
325
- UNLOCK_COMMAND (& getrf_lock );
324
+ UNLOCK_COMMAND (& getrf_lock );
326
325
}
327
326
}
328
327
329
- LOCK_COMMAND (& getrf_flag_lock );
328
+ LOCK_COMMAND (& getrf_flag_lock );
330
329
flag [mypos * CACHE_LINE_SIZE ] = 0 ;
331
- UNLOCK_COMMAND (& getrf_flag_lock );
330
+ UNLOCK_COMMAND (& getrf_flag_lock );
332
331
333
332
if (m == 0 ) {
334
333
for (xxx = 0 ; xxx < DIVIDE_RATE ; xxx ++ ) {
335
- LOCK_COMMAND (& getrf_lock );
334
+ LOCK_COMMAND (& getrf_lock );
336
335
job [mypos ].working [mypos ][CACHE_LINE_SIZE * xxx ] = 0 ;
337
- UNLOCK_COMMAND (& getrf_lock );
336
+ UNLOCK_COMMAND (& getrf_lock );
338
337
}
339
338
}
340
339
@@ -378,9 +377,9 @@ UNLOCK_COMMAND(&getrf_lock);
378
377
379
378
MB ;
380
379
if (is + min_i >= m ) {
381
- LOCK_COMMAND (& getrf_lock );
380
+ LOCK_COMMAND (& getrf_lock );
382
381
job [current ].working [mypos ][CACHE_LINE_SIZE * bufferside ] = 0 ;
383
- UNLOCK_COMMAND (& getrf_lock );
382
+ UNLOCK_COMMAND (& getrf_lock );
384
383
}
385
384
}
386
385
0 commit comments