mpiJava: call mca_base_var_register *after* MPI_Init
Thanks to Takahiro Kawashima and Siegmar Gross for pointing this issue
Этот коммит содержится в:
родитель
62bde1fcb5
Коммит
a16c1e4418
@ -62,6 +62,7 @@
|
||||
#include <sys/stat.h>
|
||||
#endif
|
||||
#include <dlfcn.h>
|
||||
#include <poll.h>
|
||||
|
||||
#include "opal/util/output.h"
|
||||
#include "opal/datatype/opal_convertor.h"
|
||||
@ -121,6 +122,11 @@ OBJ_CLASS_INSTANCE(ompi_java_buffer_t,
|
||||
*/
|
||||
jint JNI_OnLoad(JavaVM *vm, void *reserved)
|
||||
{
|
||||
char *env = getenv("OMPI_ATTACH");
|
||||
if (NULL != env && 0 < atoi(env)) {
|
||||
volatile int _dbg = 1;
|
||||
while (_dbg) poll(NULL, 0, 1);
|
||||
}
|
||||
libmpi = dlopen("libmpi." OPAL_DYN_LIB_SUFFIX, RTLD_NOW | RTLD_GLOBAL);
|
||||
|
||||
if(libmpi == NULL)
|
||||
@ -129,13 +135,6 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
mca_base_var_register("ompi", "mpi", "java", "eager",
|
||||
"Java buffers eager size",
|
||||
MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
|
||||
OPAL_INFO_LVL_5,
|
||||
MCA_BASE_VAR_SCOPE_READONLY,
|
||||
&ompi_mpi_java_eager);
|
||||
|
||||
return JNI_VERSION_1_6;
|
||||
}
|
||||
|
||||
@ -271,6 +270,12 @@ JNIEXPORT jobjectArray JNICALL Java_mpi_MPI_Init_1jni(
|
||||
|
||||
int rc = MPI_Init(&len, &sargs);
|
||||
ompi_java_exceptionCheck(env, rc);
|
||||
mca_base_var_register("ompi", "mpi", "java", "eager",
|
||||
"Java buffers eager size",
|
||||
MCA_BASE_VAR_TYPE_INT, NULL, 0, 0,
|
||||
OPAL_INFO_LVL_5,
|
||||
MCA_BASE_VAR_SCOPE_READONLY,
|
||||
&ompi_mpi_java_eager);
|
||||
|
||||
string = (*env)->FindClass(env, "java/lang/String");
|
||||
value = (*env)->NewObjectArray(env, len, string, NULL);
|
||||
|
Загрузка…
Ссылка в новой задаче
Block a user