-
- {
- surf_action_t action = NULL;
- surf_resource_t resource = NULL;
- smx_action_t smx_action = NULL;
-
- void *fun = NULL;
- void *arg = NULL;
-
- xbt_dynar_foreach(resource_list, i, resource) {
- if(xbt_swag_size(resource->common_public->states.failed_action_set) ||
- xbt_swag_size(resource->common_public->states.done_action_set))
- state_modifications = 1;
- }
-
- if(!state_modifications) {
- DEBUG1("%f : Calling surf_solve",SIMIX_get_clock());
- elapsed_time = surf_solve();
- DEBUG1("Elapsed_time %f",elapsed_time);
- }
-
- while (surf_timer_resource->extension_public->get(&fun,(void*)&arg)) {
- DEBUG2("got %p %p", fun, arg);
- if(fun==SIMIX_process_create_with_arguments) {
- process_arg_t args = arg;
- DEBUG2("Launching %s on %s", args->name, args->hostname);
- process = SIMIX_process_create_with_arguments(args->name, args->code,
- args->data, args->hostname,
- args->argc,args->argv,NULL);
- if(args->kill_time > SIMIX_get_clock()) {
- surf_timer_resource->extension_public->set(args->kill_time,
- (void*) &SIMIX_process_kill,
- (void*) process);
- }
- xbt_free(args);
- }
- if(fun==SIMIX_process_kill) {
- process = arg;
- DEBUG2("Killing %s on %s", process->name,
- process->simdata->host->name);
- SIMIX_process_kill(process);
- }
- }
-
- /* Wake up all process waiting for the action finish */
- xbt_dynar_foreach(resource_list, i, resource) {
- while ((action = xbt_swag_extract(resource->common_public->states.failed_action_set))) {
- smx_action = action->data;
- if (smx_action) {
- xbt_fifo_unshift(actions_failed,smx_action);
- }
- }
- while ((action =xbt_swag_extract(resource->common_public->states.done_action_set))) {
- smx_action = action->data;
- if (smx_action) {
- xbt_fifo_unshift(actions_done,smx_action);
- }
- }
- }
+ xbt_free(args);
+ }
+ if (fun == SIMIX_process_kill) {
+ process = arg;
+ DEBUG2("Killing %s on %s", process->name,
+ process->simdata->smx_host->name);
+ SIMIX_process_kill(process);
+ }
+ }
+
+ /* Wake up all process waiting for the action finish */
+ xbt_dynar_foreach(model_list, i, model) {
+ while ((action =
+ xbt_swag_extract(model->common_public->states.
+ failed_action_set))) {
+ smx_action = action->data;
+ if (smx_action) {
+ xbt_fifo_unshift(actions_failed, smx_action);