Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
add vm shutdown (ongoing)
authorTakahiro Hirofuchi <thirofuchi@debian.(none)>
Thu, 31 Jan 2013 17:59:19 +0000 (18:59 +0100)
committerTakahiro Hirofuchi <thirofuchi@debian.(none)>
Thu, 31 Jan 2013 17:59:19 +0000 (18:59 +0100)
src/msg/msg_vm.c
src/simix/smx_smurf_private.h
src/simix/smx_user.c
src/surf/vm_workstation.c

index 568fc00..429accd 100644 (file)
@@ -306,7 +306,11 @@ void MSG_vm_reboot(msg_vm_t vm)
 /** @brief Destroy a msg_vm_t.
  *  @ingroup msg_VMs
  */
-void MSG_vm_destroy(msg_vm_t vm) {
+void MSG_vm_destroy(msg_vm_t vm)
+{
+  simcall_vm_destroy(vm);
+
+#if 0
   unsigned int cpt;
   msg_process_t process;
   xbt_dynar_foreach(vm->processes,cpt,process) {
@@ -322,4 +326,5 @@ void MSG_vm_destroy(msg_vm_t vm) {
 
   xbt_dynar_free(&vm->processes);
   xbt_free(vm);
+#endif
 }
index 7cf3a1a..d309ff9 100644 (file)
@@ -277,8 +277,9 @@ ACTION(SIMCALL_HOST_EXECUTION_WAIT, host_execution_wait, WITHOUT_ANSWER, TINT(re
 ACTION(SIMCALL_VM_CREATE, vm_create, WITH_ANSWER, TPTR(result), TSTRING(name), TSPEC(phys_host, smx_host_t)) sep \
 ACTION(SIMCALL_VM_START, vm_start, WITHOUT_ANSWER, TVOID(result), TSPEC(phys_host, smx_host_t)) sep \
 ACTION(SIMCALL_VM_SET_STATE, vm_set_state, WITHOUT_ANSWER, TVOID(result), TSPEC(vm, smx_host_t)) TINT(state) sep \
-ACTION(SIMCALL_VM_GET_STATE, vm_get_state, WITH_ANSWER, TINT(result)), TSPEC(vm, smx_host_t)) sep \
+ACTION(SIMCALL_VM_GET_STATE, vm_get_state, WITH_ANSWER, TINT(result), TSPEC(vm, smx_host_t)) sep \
 ACTION(SIMCALL_VM_START, vm_start, WITHOUT_ANSWER, TVOID(result), TSPEC(vm, smx_host_t)) sep \
+ACTION(SIMCALL_VM_DESTROY, vm_destroy, WITHOUT_ANSWER, TVOID(result), TSPEC(vm, smx_host_t)) sep \
 ACTION(SIMCALL_PROCESS_CREATE, process_create, WITH_ANSWER, TVOID(result), TSPEC(process, smx_process_t*), TSTRING(name), TSPEC(code, xbt_main_func_t), TPTR(data), TSTRING(hostname), TDOUBLE(kill_time), TINT(argc), TSPEC(argv, char**), TSPEC(properties, xbt_dict_t), TINT(auto_restart)) sep \
 ACTION(SIMCALL_PROCESS_KILL, process_kill, WITH_ANSWER, TVOID(result), TSPEC(process, smx_process_t)) sep \
 ACTION(SIMCALL_PROCESS_KILLALL, process_killall, WITH_ANSWER, TVOID(result)) sep \
index 0b292a1..5c1394f 100644 (file)
@@ -293,6 +293,11 @@ void simcall_vm_start(smx_host_t vm){
        simcall_BODY_set_vm_state(vm, msg_vm_state_running);
 }
 
+void simcall_vm_destroy(smx_host_t vm)
+{
+  return simcall_BODY_vm_destroy(vm);
+}
+
 /**
  * \ingroup simix_process_management
  * \brief Creates and runs a new SIMIX process.
index 1db863c..3bd63c3 100644 (file)
@@ -45,7 +45,8 @@ static void vm_ws_destroy(const char *name)
        xbt_free(workstation->generic_resource.name);
 
        /* not defined yet, but we should have  */
-       // xbt_lib_unset(host_lib, name, SURF_WKS_LEVEL);
+       /* this will call surf_resource_free() */
+       xbt_lib_unset(host_lib, name, SURF_WKS_LEVEL);
 
        xbt_free(workstation);
 }