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>
|
#include <sys/stat.h>
|
||||||
#endif
|
#endif
|
||||||
#include <dlfcn.h>
|
#include <dlfcn.h>
|
||||||
|
#include <poll.h>
|
||||||
|
|
||||||
#include "opal/util/output.h"
|
#include "opal/util/output.h"
|
||||||
#include "opal/datatype/opal_convertor.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)
|
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);
|
libmpi = dlopen("libmpi." OPAL_DYN_LIB_SUFFIX, RTLD_NOW | RTLD_GLOBAL);
|
||||||
|
|
||||||
if(libmpi == NULL)
|
if(libmpi == NULL)
|
||||||
@ -129,13 +135,6 @@ jint JNI_OnLoad(JavaVM *vm, void *reserved)
|
|||||||
exit(1);
|
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;
|
return JNI_VERSION_1_6;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -271,6 +270,12 @@ JNIEXPORT jobjectArray JNICALL Java_mpi_MPI_Init_1jni(
|
|||||||
|
|
||||||
int rc = MPI_Init(&len, &sargs);
|
int rc = MPI_Init(&len, &sargs);
|
||||||
ompi_java_exceptionCheck(env, rc);
|
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");
|
string = (*env)->FindClass(env, "java/lang/String");
|
||||||
value = (*env)->NewObjectArray(env, len, string, NULL);
|
value = (*env)->NewObjectArray(env, len, string, NULL);
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user