XBT_DEBUG("Parallel execution action created: %p", simdata->compute);
} else {
simdata->compute = simcall_host_execute(task->name,
- p_simdata->m_host->smx_host,
+ p_simdata->m_host,
simdata->computation_amount,
simdata->priority);
* sometime waiting on all these mailboxes using @ref MSG_comm_waitany. You can find
* an example of use of this function in the @ref MSG_examples section.
* - Provide a proper patch to implement this functionality back in MSG. That wouldn't be
- * very difficult actually. Check the function #MSG_mailbox_get_task_ext. During its call to
+ * very difficult actually. Check the function @ref MSG_mailbox_get_task_ext. During its call to
* simcall_comm_recv(), the 5th argument, match_fun, is NULL. Create a function that filters
* messages according to the host (that you will pass as sixth argument to simcall_comm_recv()
* and that your filtering function will receive as first parameter, and then, the filter could
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
*
{
xbt_ex_t e;
int finished = 0;
+
TRY {
finished = simcall_comm_test(comm->s_comm);