X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/0398e492623cdd79abef6beb6819fda9d01b39c9..7aa517d7048f2813ede37369d12ff11e1ebefa92:/src/simix/smx_network.c diff --git a/src/simix/smx_network.c b/src/simix/smx_network.c index 56f4086130..6eff1fa5cd 100644 --- a/src/simix/smx_network.c +++ b/src/simix/smx_network.c @@ -554,7 +554,7 @@ XBT_INLINE void SIMIX_comm_start(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))) { @@ -668,6 +668,7 @@ void SIMIX_comm_finish(smx_action_t action) } req->issuer->waiting_action = NULL; + xbt_fifo_remove(req->issuer->comms, action); SIMIX_request_answer(req); destroy_count++; } @@ -887,7 +888,7 @@ void SIMIX_comm_copy_data(smx_action_t comm) 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) */