Add CriticalSection handling instead of mutexes for Windows
This commit is contained in:
parent
2e6fae2aad
commit
5192651706
|
@ -515,7 +515,12 @@ static int gemm_driver(blas_arg_t *args, BLASLONG *range_m, BLASLONG
|
||||||
BLASLONG nthreads_m, BLASLONG nthreads_n) {
|
BLASLONG nthreads_m, BLASLONG nthreads_n) {
|
||||||
|
|
||||||
#ifndef USE_OPENMP
|
#ifndef USE_OPENMP
|
||||||
|
#ifndef OS_WINDOWS
|
||||||
static pthread_mutex_t level3_lock = PTHREAD_MUTEX_INITIALIZER;
|
static pthread_mutex_t level3_lock = PTHREAD_MUTEX_INITIALIZER;
|
||||||
|
#else
|
||||||
|
CRITICAL_SECTION level3_lock;
|
||||||
|
InitializeCriticalSection((PCRITICAL_SECTION)&level3_lock;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
blas_arg_t newarg;
|
blas_arg_t newarg;
|
||||||
|
@ -559,7 +564,11 @@ static pthread_mutex_t level3_lock = PTHREAD_MUTEX_INITIALIZER;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef USE_OPENMP
|
#ifndef USE_OPENMP
|
||||||
|
#ifndef OS_WINDOWS
|
||||||
pthread_mutex_lock(&level3_lock);
|
pthread_mutex_lock(&level3_lock);
|
||||||
|
#else
|
||||||
|
EnterCriticalSection((PCRITICAL_SECTION)&level3_lock);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef USE_ALLOC_HEAP
|
#ifdef USE_ALLOC_HEAP
|
||||||
|
@ -680,7 +689,11 @@ pthread_mutex_lock(&level3_lock);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef USE_OPENMP
|
#ifndef USE_OPENMP
|
||||||
|
#ifndef OS_WINDOWS
|
||||||
pthread_mutex_unlock(&level3_lock);
|
pthread_mutex_unlock(&level3_lock);
|
||||||
|
#else
|
||||||
|
LeaveCriticalSection((PCRITICAL_SECTION)&level3_lock);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
Loading…
Reference in New Issue