Esempio n. 1
0
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;
}
Esempio n. 2
0
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);
}