MPI_Init_thread is used in place of MPI_Init, so for the checkpoint/restart functionality it must correctly init the C/R functionality instead of simply making a critical section. This allows the C/R thread to be started properly.
Thanks to Takayuki Seki for finding this bug. This commit was SVN r24194.
Этот коммит содержится в:
родитель
3d517c0285
Коммит
0b514e234b
@ -9,6 +9,7 @@
|
||||
* University of Stuttgart. All rights reserved.
|
||||
* Copyright (c) 2004-2005 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
* Copyright (c) 2010 Oak Ridge National Labs. All rights reserved.
|
||||
* $COPYRIGHT$
|
||||
*
|
||||
* Additional copyrights may follow
|
||||
@ -75,8 +76,6 @@ int MPI_Init_thread(int *argc, char ***argv, int required,
|
||||
return OMPI_ERRHANDLER_INVOKE(MPI_COMM_WORLD, MPI_ERR_OTHER, FUNC_NAME);
|
||||
}
|
||||
|
||||
OPAL_CR_ENTER_LIBRARY();
|
||||
|
||||
/* Call the back-end initialization function (we need to put as
|
||||
little in this function as possible so that if it's profiled, we
|
||||
don't lose anything) */
|
||||
@ -87,7 +86,7 @@ int MPI_Init_thread(int *argc, char ***argv, int required,
|
||||
err = ompi_mpi_init(0, NULL, required, provided);
|
||||
}
|
||||
|
||||
OPAL_CR_EXIT_LIBRARY();
|
||||
OPAL_CR_INIT_LIBRARY();
|
||||
|
||||
/* Since we don't have a communicator to invoke an errorhandler on
|
||||
here, don't use the fancy-schmancy ERRHANDLER macros; they're
|
||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user