Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Attempt to solve issues with our own finalize
[simgrid.git] / src / bindings / java / org / simgrid / msg / Mutex.java
index 503588b..80f013b 100644 (file)
@@ -8,7 +8,8 @@ package org.simgrid.msg;
 /** A mutex  implemented on top of SimGrid synchronization mechanisms. 
  * You can use it exactly the same way that you use the mutexes, 
  * but to handle the interactions between the processes within the simulation.   
- *
+ * 
+ * Don't mix simgrid synchronization with Java native one, or it will deadlock!
  */
 public class Mutex {
        private long bind; // The C object -- don't touch it
@@ -16,25 +17,19 @@ public class Mutex {
        public Mutex() {
                init();
        }
-       @Override
-       protected void finalize() {
-               try {
-                       nativeFinalize();
-               } catch (Throwable e) {
-                       e.printStackTrace();
-               }
+
+       protected void finalize() throws Throwable{
+               nativeFinalize();
        }
        private native void nativeFinalize();
        private native void init();
        public native void acquire();
        public native void release();
 
-       /**
-        * Class initializer, to initialize various JNI stuff
-        */
+       /** Class initializer, to initialize various JNI stuff */
        public static native void nativeInit();
        static {
-               Msg.nativeInit();
+               org.simgrid.NativeLib.nativeInit();
                nativeInit();
        }       
 }