/** 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
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 {
org.simgrid.NativeLib.nativeInit();