Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
two more clobbered variables that prevent me to compile. Don't ask
[simgrid.git] / src / simix / smx_network.c
index 56f4086..6eff1fa 100644 (file)
@@ -554,7 +554,7 @@ XBT_INLINE void SIMIX_comm_start(smx_action_t action)
  */
 void SIMIX_comm_finish(smx_action_t action)
 {
  */
 void SIMIX_comm_finish(smx_action_t action)
 {
-  unsigned int destroy_count = 0;
+  volatile unsigned int destroy_count = 0;
   smx_req_t req;
 
   while ((req = xbt_fifo_shift(action->request_list))) {
   smx_req_t req;
 
   while ((req = xbt_fifo_shift(action->request_list))) {
@@ -668,6 +668,7 @@ void SIMIX_comm_finish(smx_action_t action)
     }
 
     req->issuer->waiting_action = NULL;
     }
 
     req->issuer->waiting_action = NULL;
+    xbt_fifo_remove(req->issuer->comms, action);
     SIMIX_request_answer(req);
     destroy_count++;
   }
     SIMIX_request_answer(req);
     destroy_count++;
   }
@@ -887,7 +888,7 @@ void SIMIX_comm_copy_data(smx_action_t comm)
   if (buff_size == 0)
     return;
 
   if (buff_size == 0)
     return;
 
-  (*SIMIX_comm_copy_data_callback) (comm, buff_size);
+  SIMIX_comm_copy_data_callback(comm, buff_size);
 
   /* Set the copied flag so we copy data only once */
   /* (this function might be called from both communication ends) */
 
   /* Set the copied flag so we copy data only once */
   /* (this function might be called from both communication ends) */