File tree Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Expand file tree Collapse file tree 1 file changed +4
-2
lines changed Original file line number Diff line number Diff line change @@ -146,8 +146,8 @@ typedef struct {
146
146
} thread_status_t ;
147
147
148
148
#ifdef HAVE_C11
149
- #define atomic_load_queue (p ) __atomic_load_n(p, __ATOMIC_RELAXED )
150
- #define atomic_store_queue (p , v ) __atomic_store_n(p, v, __ATOMIC_RELAXED )
149
+ #define atomic_load_queue (p ) __atomic_load_n(p, __ATOMIC_ACQUIRE )
150
+ #define atomic_store_queue (p , v ) __atomic_store_n(p, v, __ATOMIC_RELEASE )
151
151
#else
152
152
#define atomic_load_queue (p ) (blas_queue_t*)(*(volatile blas_queue_t**)(p))
153
153
#define atomic_store_queue (p , v ) (*(volatile blas_queue_t* volatile*)(p) = (v))
@@ -637,7 +637,9 @@ int exec_blas_async(BLASLONG pos, blas_queue_t *queue){
637
637
638
638
#ifdef SMP_SERVER
639
639
// Handle lazy re-init of the thread-pool after a POSIX fork
640
+ LOCK_COMMAND (& server_lock );
640
641
if (unlikely (blas_server_avail == 0 )) blas_thread_init ();
642
+ UNLOCK_COMMAND (& server_lock );
641
643
#endif
642
644
BLASLONG i = 0 ;
643
645
blas_queue_t * current = queue ;
You can’t perform that action at this time.
0 commit comments