From 6d436526c41ae95197683bacfa32673df4026ff1 Mon Sep 17 00:00:00 2001 From: Martin Quinson Date: Thu, 24 Jan 2019 07:45:50 +0100 Subject: [PATCH] add a small comment about the memleak introduced here --- src/bindings/java/jmsg_task.cpp | 4 ++++ 1 file changed, 4 insertions(+) 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) -- 2.20.1