A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
small glitches there (I didn't "bob" was a routing method)
[simgrid.git]
/
src
/
simix
/
smx_user.c
diff --git
a/src/simix/smx_user.c
b/src/simix/smx_user.c
index
c0957ba
..
455b98d
100644
(file)
--- a/
src/simix/smx_user.c
+++ b/
src/simix/smx_user.c
@@
-17,6
+17,7
@@
#include "smx_private.h"
#include "mc/mc.h"
#include "smx_private.h"
#include "mc/mc.h"
+#include "xbt/ex.h"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix);
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix);
@@
-342,6
+343,7
@@
e_smx_state_t simcall_host_execution_wait(smx_action_t execution)
* \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 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
* \param argc first argument passed to \a code
* \param argv second argument passed to \a code
* \param properties the properties of the process
@@
-350,6
+352,7
@@
void simcall_process_create(smx_process_t *process, const char *name,
xbt_main_func_t code,
void *data,
const char *hostname,
xbt_main_func_t code,
void *data,
const char *hostname,
+ double kill_time,
int argc, char **argv,
xbt_dict_t properties)
{
int argc, char **argv,
xbt_dict_t properties)
{
@@
-361,6
+364,7
@@
void simcall_process_create(smx_process_t *process, const char *name,
simcall->process_create.code = code;
simcall->process_create.data = data;
simcall->process_create.hostname = hostname;
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;
simcall->process_create.argc = argc;
simcall->process_create.argv = argv;
simcall->process_create.properties = properties;
@@
-696,7
+700,7
@@
smx_action_t simcall_rdv_get_head(smx_rdv_t rdv)
void simcall_comm_send(smx_rdv_t rdv, double task_size, double rate,
void *src_buff, size_t src_buff_size,
void simcall_comm_send(smx_rdv_t rdv, double task_size, double rate,
void *src_buff, size_t src_buff_size,
- int (*match_fun)(void *, void *), void *data,
+ int (*match_fun)(void *, void *
, smx_action_t
), void *data,
double timeout)
{
/* checking for infinite values */
double timeout)
{
/* checking for infinite values */
@@
-731,7
+735,7
@@
void simcall_comm_send(smx_rdv_t rdv, double task_size, double rate,
smx_action_t simcall_comm_isend(smx_rdv_t rdv, double task_size, double rate,
void *src_buff, size_t src_buff_size,
smx_action_t simcall_comm_isend(smx_rdv_t rdv, double task_size, double rate,
void *src_buff, size_t src_buff_size,
- int (*match_fun)(void *, void *),
+ int (*match_fun)(void *, void *
, smx_action_t
),
void (*clean_fun)(void *),
void *data,
int detached)
void (*clean_fun)(void *),
void *data,
int detached)
@@
-760,7
+764,7
@@
smx_action_t simcall_comm_isend(smx_rdv_t rdv, double task_size, double rate,
}
void simcall_comm_recv(smx_rdv_t rdv, void *dst_buff, size_t * dst_buff_size,
}
void simcall_comm_recv(smx_rdv_t rdv, void *dst_buff, size_t * dst_buff_size,
- int (*match_fun)(void *, void *), void *data, double timeout)
+ int (*match_fun)(void *, void *
, smx_action_t
), void *data, double timeout)
{
xbt_assert(isfinite(timeout), "timeout is not finite!");
xbt_assert(rdv, "No rendez-vous point defined for recv");
{
xbt_assert(isfinite(timeout), "timeout is not finite!");
xbt_assert(rdv, "No rendez-vous point defined for recv");
@@
-787,7
+791,7
@@
void simcall_comm_recv(smx_rdv_t rdv, void *dst_buff, size_t * dst_buff_size,
}
smx_action_t simcall_comm_irecv(smx_rdv_t rdv, void *dst_buff, size_t * dst_buff_size,
}
smx_action_t simcall_comm_irecv(smx_rdv_t rdv, void *dst_buff, size_t * dst_buff_size,
- int (*match_fun)(void *, void *), void *data)
+ int (*match_fun)(void *, void *
, smx_action_t
), void *data)
{
xbt_assert(rdv, "No rendez-vous point defined for irecv");
{
xbt_assert(rdv, "No rendez-vous point defined for irecv");
@@
-1177,7
+1181,7
@@
int simcall_sem_get_capacity(smx_sem_t sem)
return simcall->sem_get_capacity.result;
}
return simcall->sem_get_capacity.result;
}
-size_t simcall_file_read(const char* storage, void* ptr, size_t size, size_t nmemb,
m
_file_t stream)
+size_t simcall_file_read(const char* storage, void* ptr, size_t size, size_t nmemb,
smx
_file_t stream)
{
smx_simcall_t simcall = SIMIX_simcall_mine();
{
smx_simcall_t simcall = SIMIX_simcall_mine();
@@
-1192,7
+1196,7
@@
size_t simcall_file_read(const char* storage, void* ptr, size_t size, size_t nme
return simcall->file_read.result;
}
return simcall->file_read.result;
}
-size_t simcall_file_write(const char* storage, const void* ptr, size_t size, size_t nmemb,
m
_file_t stream)
+size_t simcall_file_write(const char* storage, const void* ptr, size_t size, size_t nmemb,
smx
_file_t stream)
{
smx_simcall_t simcall = SIMIX_simcall_mine();
{
smx_simcall_t simcall = SIMIX_simcall_mine();
@@
-1207,7
+1211,7
@@
size_t simcall_file_write(const char* storage, const void* ptr, size_t size, siz
return simcall->file_write.result;
}
return simcall->file_write.result;
}
-
m
_file_t simcall_file_open(const char* storage, const char* path, const char* mode)
+
smx
_file_t simcall_file_open(const char* storage, const char* path, const char* mode)
{
smx_simcall_t simcall = SIMIX_simcall_mine();
{
smx_simcall_t simcall = SIMIX_simcall_mine();
@@
-1220,7
+1224,7
@@
m_file_t simcall_file_open(const char* storage, const char* path, const char* mo
return simcall->file_open.result;
}
return simcall->file_open.result;
}
-int simcall_file_close(const char* storage,
m
_file_t fp)
+int simcall_file_close(const char* storage,
smx
_file_t fp)
{
smx_simcall_t simcall = SIMIX_simcall_mine();
{
smx_simcall_t simcall = SIMIX_simcall_mine();
@@
-1232,16
+1236,17
@@
int simcall_file_close(const char* storage, m_file_t fp)
return simcall->file_close.result;
}
return simcall->file_close.result;
}
-int simcall_file_stat(const char* storage,
int fd, void*
buf)
+int simcall_file_stat(const char* storage,
smx_file_t fd, s_file_stat_t *
buf)
{
smx_simcall_t simcall = SIMIX_simcall_mine();
{
smx_simcall_t simcall = SIMIX_simcall_mine();
-
simcall->call = SIMCALL_FILE_STAT;
simcall->file_stat.storage = storage;
simcall->file_stat.fd = fd;
simcall->call = SIMCALL_FILE_STAT;
simcall->file_stat.storage = storage;
simcall->file_stat.fd = fd;
- simcall->file_stat.buf = buf;
+
SIMIX_simcall_push(simcall->issuer);
SIMIX_simcall_push(simcall->issuer);
+ *buf = simcall->file_stat.buf;
+
return simcall->file_stat.result;
}
return simcall->file_stat.result;
}