XBT_LOG_NEW_DEFAULT_SUBCATEGORY(simix_kernel, simix,
"Logging specific to SIMIX (kernel)");
-SIMIX_Global_t simix_global = NULL;
+smx_global_t simix_global = NULL;
static xbt_heap_t simix_timers = NULL;
/* FIXME: Yeah, I'll do it in a portable maner one day [Mt] */
XBT_LOG_CONNECT(simix_synchro, simix);
XBT_LOG_CONNECT(simix_context, simix);
- simix_global = xbt_new0(s_SIMIX_Global_t, 1);
+ simix_global = xbt_new0(s_smx_global_t, 1);
simix_global->host = xbt_dict_new();
simix_global->process_to_run =
simix_global->latency_limited_dict = xbt_dict_new();
#endif
+ surf_init(argc, argv); /* Initialize SURF structures */
SIMIX_context_mod_init();
SIMIX_create_maestro_process();
/* Initialize the SIMIX network module */
SIMIX_network_init();
-
+
/* Prepare to display some more info when dying on Ctrl-C pressing */
signal(SIGINT, inthandler);
- surf_init(argc, argv); /* Initialize SURF structures */
}
if (!simix_timers) {
simix_timers = xbt_heap_new(8, &free);
/* Exit the SIMIX network module */
SIMIX_network_exit();
-
+
/* Exit request mechanism */
SIMIX_request_destroy();
-
+
xbt_heap_free(simix_timers);
/* Free the remaining data structures */
xbt_swag_free(simix_global->process_to_run);
smx_timer_t timer;
surf_model_t model;
unsigned int iter;
-
+
do {
do {
DEBUG0("New Schedule Round");
SIMIX_context_runall(simix_global->process_to_run);
- while((req = SIMIX_request_pop())){
+ while ((req = SIMIX_request_pop())) {
DEBUG1("Handling request %p", req);
SIMIX_request_pre(req);
}
/* Notify all the hosts that have failed */
/* FIXME: iterate through the list of failed host and mark each of them */
/* as failed. On each host, signal all the running processes with host_fail */
-
+
/* Handle any pending timer */
while (xbt_heap_size(simix_timers) > 0 && SIMIX_get_clock() >= SIMIX_timer_next()) {
//FIXME: make the timers being real callbacks
}
/* Wake up all process waiting for the action finish */
xbt_dynar_foreach(model_list, iter, model) {
- for(set = model->states.failed_action_set;
- set;
- set = (set == model->states.failed_action_set)
- ? model->states.done_action_set
- : NULL) {
+ for (set = model->states.failed_action_set;
+ set;
+ set = (set == model->states.failed_action_set)
+ ? model->states.done_action_set
+ : NULL) {
while ((action = xbt_swag_extract(set)))
- SIMIX_request_post((smx_action_t)action->data);
+ SIMIX_request_post((smx_action_t) action->data);
}
}
- } while(time != -1.0);
+ } while (time != -1.0);
}
return;
}
- smx_process_t process = NULL;
- /*xbt_fifo_item_t item = NULL;
+ /*smx_process_t process = NULL;
+ xbt_fifo_item_t item = NULL;
smx_action_t act;*/
int nbprocess = xbt_swag_size(simix_global->process_list);
INFO1("%d processes are still running, waiting for something.", nbprocess);
/* List the process and their state */
+ /* FIXME: reimplement me
INFO0
("Legend of the following listing: \"<process> on <host>: <status>.\"");
xbt_swag_foreach(process, simix_global->process_list) {
who2 = bprintf("Waiting for action %p to finish", process->waiting_action);
}
- /*
if (process->mutex) {
who2 =
bprintf("%s Blocked on mutex %p", who,
free(who);
who = who2;
}
- */
INFO1("%s.", who);
free(who);
}
+ */
}