X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/90b2d4e92cf44d2697fd1368e53f1aecbd24893e..6d436526c41ae95197683bacfa32673df4026ff1:/src/bindings/java/jmsg_task.cpp diff --git a/src/bindings/java/jmsg_task.cpp b/src/bindings/java/jmsg_task.cpp index 14764bd053..47182e2234 100644 --- a/src/bindings/java/jmsg_task.cpp +++ b/src/bindings/java/jmsg_task.cpp @@ -476,6 +476,10 @@ static void msg_task_cancel_on_failed_dsend(void*t) { /* Destroy the global ref so that the JVM can free the stuff */ env->DeleteGlobalRef(jtask_global); MSG_task_set_data(task, nullptr); + /* Don't free the C data here, to avoid a race condition with the GC also sometimes doing so. + * A rare memleak is seen as preferable to a rare "free(): invalid pointer" failure that + * proves really hard to debug. + */ } JNIEXPORT void JNICALL Java_org_simgrid_msg_Task_dsend(JNIEnv * env, jobject jtask, jstring jalias)