Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Keep up with last SIMIX modifications.
authoralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 6 Aug 2007 14:23:47 +0000 (14:23 +0000)
committeralegrand <alegrand@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Mon, 6 Aug 2007 14:23:47 +0000 (14:23 +0000)
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
src/gras/Transport/transport_plugin_sg.c
src/gras/Virtu/sg_emul.c
src/msg/gos.c

index 6abe45c..90d3259 100644 (file)
@@ -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);
                                 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),
   
   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);
        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 */
   /* error treatmeant (FIXME)*/
 
   /* cleanup structures */
index 68731aa..b3335b8 100644 (file)
@@ -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);
   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_cond_wait(sock_data->cond,sock_data->mutex);
+  SIMIX_unregister_action_to_condition(act,sock_data->cond);
   /* error treatmeant (FIXME)*/
 
   /* cleanup structures */
   /* error treatmeant (FIXME)*/
 
   /* cleanup structures */
index 511ba97..e44614f 100644 (file)
@@ -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);
        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_cond_wait(cond, mutex);
+       SIMIX_unregister_action_to_condition(act,cond);
        
        SIMIX_action_destroy(act);
        SIMIX_mutex_unlock(mutex);
        
        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);
        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_cond_wait(cond, mutex);
+       SIMIX_unregister_action_to_condition(act,cond);
        
        SIMIX_action_destroy(act);
        SIMIX_mutex_unlock(mutex);
        
        SIMIX_action_destroy(act);
        SIMIX_mutex_unlock(mutex);
index 73967cd..c1ddbe5 100644 (file)
@@ -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);
   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 */
   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);
   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);
   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);
   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;
 
 
   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_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 */
   SIMIX_mutex_unlock(mutex);
 
   /* remove variables */