X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/50c07172efbd6c3b73c787c2c200048d3205b640..b08c515d1ded5726d50e3e9e11c03260e3e1546d:/src/simix/smx_host.c diff --git a/src/simix/smx_host.c b/src/simix/smx_host.c index 9c53fac0d6..5ef2bd9e5c 100644 --- a/src/simix/smx_host.c +++ b/src/simix/smx_host.c @@ -1,4 +1,4 @@ -/* Copyright (c) 2007-2012. The SimGrid Team. +/* Copyright (c) 2007-2013. The SimGrid Team. * All rights reserved. */ /* This program is free software; you can redistribute it and/or modify it @@ -34,8 +34,8 @@ smx_host_t SIMIX_host_create(const char *name, /* Update global variables */ xbt_lib_set(host_lib,name,SIMIX_HOST_LEVEL,smx_host); - - return xbt_lib_get_elm_or_null(host_lib, name); + + return xbt_lib_get_or_null(host_lib, name, SIMIX_HOST_LEVEL); } /** @@ -311,7 +311,7 @@ void SIMIX_host_add_auto_restart_process(smx_host_t host, if( SIMIX_host_get_state(host) == SURF_RESOURCE_OFF && !xbt_dict_get_or_null(watched_hosts_lib,sg_host_name(host))){ xbt_dict_set(watched_hosts_lib,sg_host_name(host),host,NULL); - XBT_DEBUG("Have push host %s to watched_hosts_lib because state == SURF_RESOURCE_OFF",sg_host_name(host)); + XBT_DEBUG("Have pushed host %s to watched_hosts_lib because state == SURF_RESOURCE_OFF",sg_host_name(host)); } xbt_dynar_push_as(SIMIX_host_priv(host)->auto_restart_processes,smx_process_arg_t,arg); } @@ -322,7 +322,10 @@ void SIMIX_host_restart_processes(smx_host_t host) { unsigned int cpt; smx_process_arg_t arg; - xbt_dynar_foreach(SIMIX_host_priv(host)->auto_restart_processes,cpt,arg) { + xbt_dynar_t process_list = SIMIX_host_priv(host)->auto_restart_processes; + if(!process_list) return; + + xbt_dynar_foreach(process_list,cpt,arg) { smx_process_t process; @@ -353,7 +356,7 @@ void SIMIX_host_restart_processes(smx_host_t host) } } - xbt_dynar_reset(SIMIX_host_priv(host)->auto_restart_processes); + xbt_dynar_reset(process_list); } void SIMIX_host_autorestart(smx_host_t host) @@ -623,10 +626,10 @@ void SIMIX_set_category(smx_action_t action, const char *category) } #endif -xbt_dynar_t SIMIX_pre_host_get_storage_list(smx_simcall_t simcall, smx_host_t host){ +xbt_dict_t SIMIX_pre_host_get_storage_list(smx_simcall_t simcall, smx_host_t host){ return SIMIX_host_get_storage_list(host); } -xbt_dynar_t SIMIX_host_get_storage_list(smx_host_t host){ +xbt_dict_t SIMIX_host_get_storage_list(smx_host_t host){ xbt_assert((host != NULL), "Invalid parameters (simix host is NULL)"); return surf_workstation_model->extension.workstation.get_storage_list(host);