From: Frederic Suter Date: Tue, 31 May 2016 08:48:31 +0000 (+0200) Subject: Cannot let GC destroy VM itself ... X-Git-Tag: v3_14~1087 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/55f40bb2267b2fb4999d7c3ec1a69b4ef133fe68?ds=sidebyside Cannot let GC destroy VM itself ... AFAIU, VMs are special hosts, surf_exit try to free them before GC kicks in. After many tries, decide to rename finalize as destroy and call this method explicitly as before. --- diff --git a/examples/java/cloud/masterworker/Master.java b/examples/java/cloud/masterworker/Master.java index b5200ca11a..586c910fd2 100644 --- a/examples/java/cloud/masterworker/Master.java +++ b/examples/java/cloud/masterworker/Master.java @@ -79,8 +79,7 @@ public class Master extends Process { Msg.info("Let's shut down the simulation and kill everyone."); for (int i = 0; i < vms.size(); i++) { - vms.get(i).shutdown(); - vms.get(i).finalize(); + vms.get(i).destroy(); } Msg.info("Master done."); } diff --git a/examples/java/cloud/migration/Test.java b/examples/java/cloud/migration/Test.java index c9ccc6e088..5eee62d9ee 100644 --- a/examples/java/cloud/migration/Test.java +++ b/examples/java/cloud/migration/Test.java @@ -143,6 +143,6 @@ public class Test extends Process{ Main.setEndOfTest(); Msg.info("Forcefully destroy VMs"); for (VM vm: vms) - vm.finalize(); + vm.destroy(); } } diff --git a/examples/java/energy/vm/EnergyVMRunner.java b/examples/java/energy/vm/EnergyVMRunner.java index 4094a20ff7..d8ecb21de3 100644 --- a/examples/java/energy/vm/EnergyVMRunner.java +++ b/examples/java/energy/vm/EnergyVMRunner.java @@ -73,9 +73,7 @@ public class EnergyVMRunner extends Process { Msg.info("Wait another 5 seconds. The tasks stop at some point in between"); waitFor(5); - vmHost1.shutdown(); - vmHost3.shutdown(); - vmHost1.finalize(); - vmHost3.finalize(); + vmHost1.destroy(); + vmHost3.destroy(); } } diff --git a/src/bindings/java/org/simgrid/msg/VM.java b/src/bindings/java/org/simgrid/msg/VM.java index cd2c7e81ab..9f78fa4435 100644 --- a/src/bindings/java/org/simgrid/msg/VM.java +++ b/src/bindings/java/org/simgrid/msg/VM.java @@ -62,11 +62,11 @@ public class VM extends Host{ } return null; } - @Override - public void finalize() { + + public void destroy() { try { nativeFinalize(); - } catch (Throwable e) { + } catch (Exception e) { e.printStackTrace(); } }