* \param data a pointer to any data one may want to attach to the new object. It is for user-level information and can be NULL.
* It can be retrieved with the function \ref simcall_process_get_data.
* \param hostname name of the host where the new agent is executed.
+ * \param kill_time time when the process is killed
* \param argc first argument passed to \a code
* \param argv second argument passed to \a code
* \param properties the properties of the process
xbt_main_func_t code,
void *data,
const char *hostname,
+ double kill_time,
int argc, char **argv,
xbt_dict_t properties)
{
simcall->process_create.code = code;
simcall->process_create.data = data;
simcall->process_create.hostname = hostname;
+ simcall->process_create.kill_time = kill_time;
simcall->process_create.argc = argc;
simcall->process_create.argv = argv;
simcall->process_create.properties = properties;
smx_mutex_t mutex,
double timeout)
{
- xbt_ex_t e;
-
xbt_assert(isfinite(timeout), "timeout is not finite!");
smx_simcall_t simcall = SIMIX_simcall_mine();
simcall->cond_wait_timeout.mutex = mutex;
simcall->cond_wait_timeout.timeout = timeout;
- TRY {
- SIMIX_simcall_push(simcall->issuer);
- }
- CATCH(e) {
- switch (e.category) {
- case timeout_error:
- simcall->issuer->waiting_action = NULL; // FIXME: should clean ?
- break;
- default:
- break;
- }
- RETHROW;
- xbt_ex_free(e);
- }
+ SIMIX_simcall_push(simcall->issuer);
}
void simcall_cond_broadcast(smx_cond_t cond)