- {
- surf_action_t action = NULL;
- surf_resource_t resource = NULL;
- m_task_t task = NULL;
-
- xbt_dynar_foreach(resource_list, i, resource) {
- while ((action =
- xbt_swag_extract(resource->common_public->states.
- failed_action_set))) {
- task = action->data;
- if(task) {
- int _cursor;
- DEBUG1("** %s failed **",task->name);
-/* fprintf(stderr,"** %s **\n",task->name); */
- xbt_dynar_foreach(task->simdata->sleeping,_cursor,process) {
- DEBUG3("\t preparing to wake up %s(%d) on %s",
- process->name,process->simdata->PID,
- process->simdata->host->name);
- xbt_fifo_unshift(msg_global->process_to_run, process);
- }
- process=NULL;
- }
- }
- while ((action =
- xbt_swag_extract(resource->common_public->states.
- done_action_set))) {
- task = action->data;
- if(task) {
- int _cursor;
- DEBUG1("** %s done **",task->name);
-/* fprintf(stderr,"** %s **\n",task->name); */
- xbt_dynar_foreach(task->simdata->sleeping,_cursor,process) {
- DEBUG3("\t preparing to wake up %s(%d) on %s",
- process->name,process->simdata->PID,
- process->simdata->host->name);
- xbt_fifo_unshift(msg_global->process_to_run, process);
- }
- process=NULL;
- }
- }
+ while ((smx_action = xbt_fifo_pop(actions_failed))) {
+
+
+ DEBUG1("** %s failed **", smx_action->name);
+ while ((cond = xbt_fifo_pop(smx_action->cond_list))) {
+ SIMIX_cond_broadcast(cond);