- if \a *task is not equal to \c NULL, and #MSG_OK otherwise.
- */
-MSG_error_t MSG_task_get_from_host(m_task_t * task, int channel,
- m_host_t host)
-{
- return __MSG_task_get_with_time_out_from_host(task, channel, -1, host);
-}
-
-/** \ingroup msg_gos_functions
- * \brief Test whether there is a pending communication on a channel.
- *
- * It takes one parameter.
- * \param channel the channel on which the agent should be
- listening. This value has to be >=0 and < than the maximal
- number of channels fixed with MSG_set_channel_number().
- * \return 1 if there is a pending communication and 0 otherwise
- */
-int MSG_task_Iprobe(m_channel_t channel)
-{
- m_host_t h = NULL;
- simdata_host_t h_simdata = NULL;
-
- xbt_assert1((channel>=0) && (channel < msg_global->max_channel),"Invalid channel %d",channel);
- DEBUG2("Probing on channel %d (%s)", channel,h->name);
- CHECK_HOST();
- h = MSG_host_self();
- h_simdata = h->simdata;
- return(xbt_fifo_get_first_item(h_simdata->mbox[channel])!=NULL);
-}
-
-/** \ingroup msg_gos_functions
- * \brief Test whether there is a pending communication on a channel, and who sent it.
- *
- * It takes one parameter.
- * \param channel the channel on which the agent should be
- listening. This value has to be >=0 and < than the maximal
- number of channels fixed with MSG_set_channel_number().
- * \return -1 if there is no pending communication and the PID of the process who sent it otherwise
- */
-int MSG_task_probe_from(m_channel_t channel)
-{
- m_host_t h = NULL;
- simdata_host_t h_simdata = NULL;
- xbt_fifo_item_t item;
- m_task_t t;
-
- xbt_assert1((channel>=0) && (channel < msg_global->max_channel),"Invalid channel %d",channel);
- CHECK_HOST();
- h = MSG_host_self();
- h_simdata = h->simdata;
-
- DEBUG2("Probing on channel %d (%s)", channel,h->name);
-
- item = xbt_fifo_get_first_item(h->simdata->mbox[channel]);
- if (!item || !(t = xbt_fifo_get_item_content(item)))
- return -1;
-
- return MSG_process_get_PID(t->simdata->sender);
-}
-
-/** \ingroup msg_gos_functions
- * \brief Wait for at most \a max_duration second for a task reception
- on \a channel. *\a PID is updated with the PID of the first process
- that triggered this event if any.
- *
- * It takes three parameters:
- * \param channel the channel on which the agent should be
- listening. This value has to be >=0 and < than the maximal.
- number of channels fixed with MSG_set_channel_number().
- * \param PID a memory location for storing an int.
- * \param max_duration the maximum time to wait for a task before
- giving up. In the case of a reception, *\a PID will be updated
- with the PID of the first process to send a task.
- * \return #MSG_HOST_FAILURE if the host is shut down in the meantime
- and #MSG_OK otherwise.