X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/7a7d635337f769993338c2a737bcd6a3a8f949ee..2b9f74737bbd837c728884a5ba7d0a4f02bca79d:/src/simix/smx_user.c diff --git a/src/simix/smx_user.c b/src/simix/smx_user.c index b9099f5877..3d17a0522d 100644 --- a/src/simix/smx_user.c +++ b/src/simix/smx_user.c @@ -735,6 +735,29 @@ smx_action_t simcall_comm_irecv(smx_rdv_t rdv, void *dst_buff, size_t *dst_buff_ } +/** + * \ingroup simix_comm_management + */ +double simcall_comm_change_rate_first_action(smx_rdv_t rdv, double newrate) +{ + xbt_assert(rdv, "No rendez-vous point defined for change_rate_first_action"); + + smx_action_t action; + xbt_fifo_item_t item; + + item = xbt_fifo_get_first_item(rdv->comm_fifo); + if (item != NULL) { + action = (smx_action_t) xbt_fifo_get_item_content(item); + if (action->comm.rate > newrate) { + action->comm.rate = newrate; + return newrate; + } else + return action->comm.rate; + } else + return -1.0; +} + + /** * \ingroup simix_comm_management */