3 int smpi_gettimeofday(struct timeval *tv, struct timezone *tz)
11 now = SIMIX_get_clock();
13 tv->tv_usec = ((now - (double)tv->tv_sec) * 1000000.0);
19 unsigned int smpi_sleep(unsigned int seconds)
26 host = SIMIX_host_self();
28 SIMIX_mutex_lock(smpi_global->execute_mutex);
30 // FIXME: explicit conversion to double?
31 action = SIMIX_action_sleep(host, seconds);
33 SIMIX_register_action_to_condition(action, smpi_global->execute_cond);
34 SIMIX_cond_wait(smpi_global->execute_cond, smpi_global->execute_mutex);
35 SIMIX_unregister_action_to_condition(action, smpi_global->execute_cond);
36 SIMIX_action_destroy(action);
38 SIMIX_mutex_unlock(smpi_global->execute_mutex);
44 void smpi_exit(int status)
47 SIMIX_mutex_lock(smpi_global->running_hosts_count_mutex);
48 smpi_global->running_hosts_count--;
49 SIMIX_mutex_unlock(smpi_global->running_hosts_count_mutex);
50 SIMIX_process_kill(SIMIX_process_self());