From: Jonathan Rouzaud-Cornabas Date: Tue, 29 Jan 2013 14:48:16 +0000 (+0100) Subject: Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid X-Git-Tag: v3_9_90~603 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/090fb57486c1c8d17cbea84bbf023c940f0dbf73?hp=2d9f15893f0d30616ba394c85df84509563e950c Merge branch 'master' of git+ssh://scm.gforge.inria.fr//gitroot/simgrid/simgrid --- diff --git a/include/msg/msg.h b/include/msg/msg.h index 41b94838d7..3be2d06513 100644 --- a/include/msg/msg.h +++ b/include/msg/msg.h @@ -224,6 +224,7 @@ XBT_PUBLIC(msg_error_t) #define MSG_task_recv(t,a) MSG_task_receive(t,a) XBT_PUBLIC(msg_comm_t) MSG_task_isend(msg_task_t task, const char *alias); +XBT_PUBLIC(msg_comm_t) MSG_task_isend_bounded(msg_task_t task, const char *alias, double maxrate); XBT_PUBLIC(msg_comm_t) MSG_task_isend_with_matching(msg_task_t task, const char *alias, int (*match_fun)(void*,void*, smx_action_t), diff --git a/src/msg/msg_gos.c b/src/msg/msg_gos.c index bcc59e135c..e26738e156 100644 --- a/src/msg/msg_gos.c +++ b/src/msg/msg_gos.c @@ -271,6 +271,25 @@ msg_comm_t MSG_task_isend(msg_task_t task, const char *alias) return MSG_task_isend_with_matching(task,alias,NULL,NULL); } +/** \ingroup msg_task_usage + * \brief Sends a task on a mailbox with a maximum rate + * + * This is a non blocking function: use MSG_comm_wait() or MSG_comm_test() + * to end the communication. The maxrate parameter allows the application + * to limit the bandwidth utilization of network links when sending the task. + * + * \param task a #msg_task_t to send on another location. + * \param alias name of the mailbox to sent the task to + * \param maxrate the maximum communication rate for sending this task . + * \return the msg_comm_t communication created + */ +msg_comm_t MSG_task_isend_bounded(msg_task_t task, const char *alias, double maxrate) +{ + task->simdata->rate = maxrate; + return MSG_task_isend_with_matching(task,alias,NULL,NULL); +} + + /** \ingroup msg_task_usage * \brief Sends a task on a mailbox, with support for matching requests *