Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Adrien Fix conflict
authoralebre <adrien.lebre@inria.fr>
Thu, 31 Jan 2013 18:03:11 +0000 (19:03 +0100)
committeralebre <adrien.lebre@inria.fr>
Thu, 31 Jan 2013 18:03:11 +0000 (19:03 +0100)
include/xbt/lib.h
src/msg/msg_vm.c
src/simix/smx_user.c
src/surf/vm_workstation.c
src/xbt/lib.c

index cdc9fc7..e08802b 100644 (file)
@@ -30,6 +30,7 @@ XBT_PUBLIC(void *) xbt_lib_get_or_null(xbt_lib_t lib, const char *name,
                                        int level);
 XBT_PUBLIC(xbt_dictelm_t) xbt_lib_get_elm_or_null(xbt_lib_t lib, const char *key);
 XBT_PUBLIC(void *) xbt_lib_get_level(xbt_dictelm_t elm, int level);
+XBT_PUBLIC(void) xbt_lib_remove(xbt_lib_t lib, const char *key);
 
 #define xbt_lib_length(lib) xbt_dict_length((lib)->dict)
 
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 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);
 }
index ccb1e0e..9353769 100644 (file)
@@ -85,3 +85,7 @@ void *xbt_lib_get_level(xbt_dictelm_t elm, int level){
   void **elts = elm->content;
   return elts ? elts[level] : NULL;
 }
+
+void xbt_lib_remove(xbt_lib_t lib, const char *key){
+  xbt_dict_remove(lib->dict, key);
+}