From f3d729e504ec012e7dc7e02b2ecd42e004c6894d Mon Sep 17 00:00:00 2001 From: Tyler Michael Smith Date: Wed, 26 Nov 2014 22:25:24 -0600 Subject: [PATCH] Added static mutex to bli_init and bli_finalize --- frame/base/bli_init.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/frame/base/bli_init.c b/frame/base/bli_init.c index 90cf2bd89..7f10ea7ef 100644 --- a/frame/base/bli_init.c +++ b/frame/base/bli_init.c @@ -52,6 +52,7 @@ herk_thrinfo_t BLIS_HERK_SINGLE_THREADED; thread_comm_t BLIS_SINGLE_COMM; #ifdef BLIS_ENABLE_PTHREADS +pthread_mutex_t initialize_mutex = PTHREAD_MUTEX_INITIALIZER; pthread_mutex_t mem_manager_mutex; #endif @@ -80,6 +81,9 @@ err_t bli_init( void ) // BEGIN CRITICAL SECTION #ifdef BLIS_ENABLE_OPENMP _Pragma( "omp critical (init)" ) +#endif +#ifdef BLIS_ENABLE_PTHREADS + pthread_mutex_lock( &mem_manager_mutex ); #endif { @@ -114,6 +118,9 @@ err_t bli_init( void ) // END CRITICAL SECTION } +#ifdef BLIS_ENABLE_PTHREADS + pthread_mutex_unlock( &mem_manager_mutex ); +#endif #ifdef BLIS_ENABLE_PTHREADS pthread_mutex_init( &mem_manager_mutex, NULL ); @@ -146,6 +153,9 @@ err_t bli_finalize( void ) // BEGIN CRITICAL SECTION #ifdef BLIS_ENABLE_OPENMP _Pragma( "omp critical (init)" ) +#endif +#ifdef BLIS_ENABLE_PTHREADS + pthread_mutex_lock( &mem_manager_mutex ); #endif { @@ -175,6 +185,9 @@ err_t bli_finalize( void ) // END CRITICAL SECTION } +#ifdef BLIS_ENABLE_PTHREADS + pthread_mutex_unlock( &mem_manager_mutex ); +#endif #ifdef BLIS_ENABLE_PTHREADS pthread_mutex_destroy( &mem_manager_mutex );