* sees it and react accordingly. This would kill that need for surf to call simix.
*
*/
+
+static void remove_watched_host(void *key)
+{
+ xbt_dict_remove(watched_hosts_lib, *(char**)key);
+}
+
void surf_watched_hosts(void)
{
char *key;
void *host;
xbt_dict_cursor_t cursor;
+ xbt_dynar_t hosts = xbt_dynar_new(sizeof(char*), NULL);
XBT_DEBUG("Check for host SURF_RESOURCE_ON on watched_hosts_lib");
xbt_dict_foreach(watched_hosts_lib,cursor,key,host)
if(SIMIX_host_get_state(host) == SURF_RESOURCE_ON){
XBT_INFO("Restart processes on host: %s",SIMIX_host_get_name(host));
SIMIX_host_autorestart(host);
- xbt_dict_remove(watched_hosts_lib,key);
+ xbt_dynar_push_as(hosts, char*, key);
}
else
XBT_DEBUG("See SURF_RESOURCE_OFF on host: %s",key);
}
+ xbt_dynar_map(hosts, remove_watched_host);
+ xbt_dynar_free(&hosts);
}