Add workaround for omp_get_max_threads hanging on FreeBSD with libomp from LLVM14

This commit is contained in:
Martin Kroeker 2023-11-11 21:30:32 +01:00 committed by GitHub
parent 9c3c1cfbd6
commit ff6437f2d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 3 deletions

View File

@ -124,9 +124,18 @@ void openblas_set_num_threads(int num_threads) {
} }
int blas_thread_init(void){ int blas_thread_init(void){
if(blas_omp_number_max <= 0)
blas_omp_number_max = omp_get_max_threads(); #if defined(__FreeBSD__) && defined(__clang__)
extern int openblas_omp_num_threads_env();
if(blas_omp_number_max <= 0)
blas_omp_number_max= openblas_omp_num_threads_env();
if (blas_omp_number_max <= 0)
blas_omp_number_max=MAX_CPU_NUMBER;
#else
blas_omp_number_max = /omp_get_max_threads();
#endif
blas_get_cpu_number(); blas_get_cpu_number();
adjust_thread_buffers(); adjust_thread_buffers();