From 5178c3d78c741bc724a439f407d441300355c40d Mon Sep 17 00:00:00 2001 From: alegrand Date: Mon, 6 Aug 2007 14:23:47 +0000 Subject: [PATCH] Keep up with last SIMIX modifications. git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@3990 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- src/gras/Msg/sg_msg.c | 2 +- src/gras/Transport/transport_plugin_sg.c | 3 +-- src/gras/Virtu/sg_emul.c | 4 ++-- src/msg/gos.c | 4 ++++ 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/gras/Msg/sg_msg.c b/src/gras/Msg/sg_msg.c index 6abe45c481..90d3259487 100644 --- a/src/gras/Msg/sg_msg.c +++ b/src/gras/Msg/sg_msg.c @@ -90,7 +90,6 @@ void gras_msg_send_ext(gras_socket_t sock, sock_data->to_host,msgtype->name, (double)whole_payload_size, -1); SIMIX_register_action_to_condition(act,sock_data->cond); - SIMIX_register_condition_to_action(act,sock_data->cond); VERB5("Sending to %s(%s) a message type '%s' kind '%s' ID %lu", SIMIX_host_get_name(sock_data->to_host), @@ -98,6 +97,7 @@ void gras_msg_send_ext(gras_socket_t sock, msg->type->name,e_gras_msg_kind_names[msg->kind], msg->ID); SIMIX_cond_wait(sock_data->cond, sock_data->mutex); + SIMIX_unregister_action_to_condition(act,sock_data->cond); /* error treatmeant (FIXME)*/ /* cleanup structures */ diff --git a/src/gras/Transport/transport_plugin_sg.c b/src/gras/Transport/transport_plugin_sg.c index 68731aaaae..b3335b8499 100644 --- a/src/gras/Transport/transport_plugin_sg.c +++ b/src/gras/Transport/transport_plugin_sg.c @@ -306,9 +306,8 @@ void gras_trp_sg_chunk_send_raw(gras_socket_t sock, act = SIMIX_action_communicate(SIMIX_host_self(), sock_data->to_host, name, size, -1); SIMIX_register_action_to_condition(act,sock_data->cond); - SIMIX_register_condition_to_action(act,sock_data->cond); - SIMIX_cond_wait(sock_data->cond,sock_data->mutex); + SIMIX_unregister_action_to_condition(act,sock_data->cond); /* error treatmeant (FIXME)*/ /* cleanup structures */ diff --git a/src/gras/Virtu/sg_emul.c b/src/gras/Virtu/sg_emul.c index 511ba97082..e44614f640 100644 --- a/src/gras/Virtu/sg_emul.c +++ b/src/gras/Virtu/sg_emul.c @@ -89,8 +89,8 @@ int gras_bench_always_end(void) act = SIMIX_action_execute(SIMIX_host_self(), (char*) "task", (duration)/reference); SIMIX_register_action_to_condition(act,cond); - SIMIX_register_condition_to_action(act,cond); SIMIX_cond_wait(cond, mutex); + SIMIX_unregister_action_to_condition(act,cond); SIMIX_action_destroy(act); SIMIX_mutex_unlock(mutex); @@ -147,8 +147,8 @@ int gras_bench_once_end(void) act = SIMIX_action_execute(SIMIX_host_self(), (char*)"task", (duration)/reference); SIMIX_register_action_to_condition(act,cond); - SIMIX_register_condition_to_action(act,cond); SIMIX_cond_wait(cond, mutex); + SIMIX_unregister_action_to_condition(act,cond); SIMIX_action_destroy(act); SIMIX_mutex_unlock(mutex); diff --git a/src/msg/gos.c b/src/msg/gos.c index 73967cdcf2..c1ddbe54a4 100644 --- a/src/msg/gos.c +++ b/src/msg/gos.c @@ -127,6 +127,7 @@ static MSG_error_t __MSG_task_get_with_time_out_from_host(m_task_t * task, process->simdata->waiting_task = t; SIMIX_register_action_to_condition(t_simdata->comm, t_simdata->cond); SIMIX_cond_wait(t_simdata->cond, t_simdata->mutex); + SIMIX_unregister_action_to_condition(t_simdata->comm, t_simdata->cond); process->simdata->waiting_task = NULL; /* the task has already finished and the pointer must be null */ @@ -591,6 +592,7 @@ MSG_error_t MSG_task_execute(m_task_t task) self->simdata->waiting_task = task; SIMIX_register_action_to_condition(simdata->compute, simdata->cond); SIMIX_cond_wait(simdata->cond, simdata->mutex); + SIMIX_unregister_action_to_condition(simdata->compute, simdata->cond); self->simdata->waiting_task = NULL; SIMIX_mutex_unlock(simdata->mutex); @@ -704,6 +706,7 @@ MSG_error_t MSG_parallel_task_execute(m_task_t task) self->simdata->waiting_task = task; SIMIX_register_action_to_condition(simdata->compute, simdata->cond); SIMIX_cond_wait(simdata->cond, simdata->mutex); + SIMIX_unregister_action_to_condition(simdata->compute, simdata->cond); self->simdata->waiting_task = NULL; @@ -759,6 +762,7 @@ MSG_error_t MSG_process_sleep(double nb_sec) SIMIX_register_action_to_condition(act_sleep, cond); SIMIX_cond_wait(cond, mutex); + SIMIX_unregister_action_to_condition(act_sleep, cond); SIMIX_mutex_unlock(mutex); /* remove variables */ -- 2.20.1