jobject ompi_java_status_newIndex(JNIEnv *env, MPI_Status *status, int index) { jlongArray jData = (*env)->NewLongArray(env, 6); ompi_java_status_setIndex(env, jData, status, index); jobject jStatus = (*env)->AllocObject(env, ompi_java.StatusClass); (*env)->SetObjectField(env, jStatus, ompi_java.StatusData, jData); return jStatus; }
JNIEXPORT void JNICALL Java_mpi_Request_waitAnyStatus( JNIEnv *env, jclass clazz, jlongArray requests, jobject stat) { int count = (*env)->GetArrayLength(env, requests); jlong* jReq; MPI_Request *cReq; ompi_java_getPtrArray(env, requests, &jReq, (void***)&cReq); int index; MPI_Status status; int rc = MPI_Waitany(count, cReq, &index, &status); ompi_java_exceptionCheck(env, rc); ompi_java_releasePtrArray(env, requests, jReq, (void**)cReq); ompi_java_status_setIndex(env, stat, &status, index); }