From babfd93be3c72a64b9c017cf5c24e1b9a073aab1 Mon Sep 17 00:00:00 2001 From: Aboorva Devarajan Date: Fri, 5 Jan 2018 06:40:30 -0500 Subject: [PATCH] Allow mpi_init_thread to override the MPI_THREAD_LEVEL Signed-off-by: Austen Lauria --- ompi/mpi/c/init_thread.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/ompi/mpi/c/init_thread.c b/ompi/mpi/c/init_thread.c index 2cdad8ff3af..95ca9df25e2 100644 --- a/ompi/mpi/c/init_thread.c +++ b/ompi/mpi/c/init_thread.c @@ -48,6 +48,7 @@ int MPI_Init_thread(int *argc, char ***argv, int required, int *provided) { int err, safe_required = MPI_THREAD_SERIALIZED; + char *env; ompi_hook_base_mpi_init_thread_top(argc, argv, required, provided); @@ -56,7 +57,13 @@ int MPI_Init_thread(int *argc, char ***argv, int required, */ if( (MPI_THREAD_SINGLE == required) || (MPI_THREAD_SERIALIZED == required) || (MPI_THREAD_FUNNELED == required) || (MPI_THREAD_MULTIPLE == required) ) { - safe_required = required; + + if (NULL != (env = getenv("OMPI_MPI_THREAD_LEVEL"))) { + safe_required = atoi(env); + } + else { + safe_required = required; + } } *provided = safe_required;