diff --git a/driver/others/blas_server_omp.c b/driver/others/blas_server_omp.c index 3e2179373e..f7008fb088 100644 --- a/driver/others/blas_server_omp.c +++ b/driver/others/blas_server_omp.c @@ -124,9 +124,18 @@ void openblas_set_num_threads(int num_threads) { } int blas_thread_init(void){ - if(blas_omp_number_max <= 0) + +#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(); adjust_thread_buffers();