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
regenerate on valnure (dynar exchange)
[simgrid.git]
/
src
/
msg
/
m_process.c
diff --git
a/src/msg/m_process.c
b/src/msg/m_process.c
index
21f8d36
..
2131afa
100644
(file)
--- a/
src/msg/m_process.c
+++ b/
src/msg/m_process.c
@@
-34,7
+34,7
@@
m_process_t MSG_process_create(const char *name,
m_process_code_t code, void *data,
m_host_t host)
{
m_process_code_t code, void *data,
m_host_t host)
{
- return MSG_process_create_with_arguments(name, code, data, host, -1, NULL
, 0.0, -1.0
);
+ return MSG_process_create_with_arguments(name, code, data, host, -1, NULL);
}
static void MSG_process_cleanup(void *arg)
}
static void MSG_process_cleanup(void *arg)
@@
-80,8
+80,7
@@
static void MSG_process_cleanup(void *arg)
*/
m_process_t MSG_process_create_with_arguments(const char *name,
m_process_code_t code, void *data,
*/
m_process_t MSG_process_create_with_arguments(const char *name,
m_process_code_t code, void *data,
- m_host_t host, int argc, char **argv,
- double start_time, double kill_time)
+ m_host_t host, int argc, char **argv)
{
simdata_process_t simdata = xbt_new0(s_simdata_process_t,1);
m_process_t process = xbt_new0(s_m_process_t,1);
{
simdata_process_t simdata = xbt_new0(s_simdata_process_t,1);
m_process_t process = xbt_new0(s_m_process_t,1);
@@
-95,7
+94,6
@@
m_process_t MSG_process_create_with_arguments(const char *name,
simdata->waiting_task = NULL;
simdata->argc = argc;
simdata->argv = argv;
simdata->waiting_task = NULL;
simdata->argc = argc;
simdata->argv = argv;
- simdata->kill_time = kill_time;
simdata->context = xbt_context_new(code, NULL, NULL,
MSG_process_cleanup, process,
simdata->argc, simdata->argv);
simdata->context = xbt_context_new(code, NULL, NULL,
MSG_process_cleanup, process,
simdata->argc, simdata->argv);
@@
-121,12
+119,7
@@
m_process_t MSG_process_create_with_arguments(const char *name,
msg_global->current_process = self;
xbt_fifo_push(msg_global->process_list, process);
msg_global->current_process = self;
xbt_fifo_push(msg_global->process_list, process);
- if (start_time == 0.0) {
- xbt_fifo_push(msg_global->process_to_run, process);
- } else {
- /* FIXME: let the process sleep for the specified amount of time */
- xbt_fifo_push(msg_global->process_to_run, process);
- }
+ xbt_fifo_push(msg_global->process_to_run, process);
PAJE_PROCESS_NEW(process);
PAJE_PROCESS_NEW(process);
@@
-143,6
+136,8
@@
void MSG_process_kill(m_process_t process)
int i;
simdata_process_t p_simdata = process->simdata;
simdata_host_t h_simdata= p_simdata->host->simdata;
int i;
simdata_process_t p_simdata = process->simdata;
simdata_host_t h_simdata= p_simdata->host->simdata;
+ int _cursor;
+ m_process_t proc = NULL;
/* fprintf(stderr,"Killing %s(%d) on %s.\n",process->name, */
/* p_simdata->PID,p_simdata->host->name); */
/* fprintf(stderr,"Killing %s(%d) on %s.\n",process->name, */
/* p_simdata->PID,p_simdata->host->name); */
@@
-155,6
+150,10
@@
void MSG_process_kill(m_process_t process)
}
if (i==msg_global->max_channel) {
if(p_simdata->waiting_task) {
}
if (i==msg_global->max_channel) {
if(p_simdata->waiting_task) {
+ xbt_dynar_foreach(p_simdata->waiting_task->simdata->sleeping,_cursor,proc) {
+ if(proc==process)
+ xbt_dynar_remove_at(p_simdata->waiting_task->simdata->sleeping,_cursor,&proc);
+ }
if(p_simdata->waiting_task->simdata->compute)
surf_workstation_resource->common_public->
action_free(p_simdata->waiting_task->simdata->compute);
if(p_simdata->waiting_task->simdata->compute)
surf_workstation_resource->common_public->
action_free(p_simdata->waiting_task->simdata->compute);
@@
-172,6
+171,7
@@
void MSG_process_kill(m_process_t process)
}
}
}
}
+ xbt_fifo_remove(msg_global->process_to_run,process);
xbt_fifo_remove(msg_global->process_list,process);
xbt_context_free(process->simdata->context);
}
xbt_fifo_remove(msg_global->process_list,process);
xbt_context_free(process->simdata->context);
}