From: casanova Date: Tue, 30 Aug 2005 20:48:40 +0000 (+0000) Subject: Implemented the MSG_task_get_source() function. (See ChangeLog) X-Git-Tag: v3.3~3681 X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/commitdiff_plain/da7e15623cc3e43bd5b30848b1b2283af9470b5c Implemented the MSG_task_get_source() function. (See ChangeLog) git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@1676 48e7efb5-ca39-0410-a469-dd3cf9ba447f --- diff --git a/include/msg/msg.h b/include/msg/msg.h index cf0009b1ee..33f4ce0425 100644 --- a/include/msg/msg.h +++ b/include/msg/msg.h @@ -83,6 +83,7 @@ m_task_t MSG_parallel_task_create(const char *name, void *data); void *MSG_task_get_data(m_task_t task); m_process_t MSG_task_get_sender(m_task_t task); +m_host_t MSG_task_get_source(m_task_t task); const char *MSG_task_get_name(m_task_t task); MSG_error_t MSG_task_cancel(m_task_t task); MSG_error_t MSG_task_destroy(m_task_t task); diff --git a/include/xbt/fifo.h b/include/xbt/fifo.h index 2b46a58a6e..01dfbff770 100644 --- a/include/xbt/fifo.h +++ b/include/xbt/fifo.h @@ -41,7 +41,7 @@ int xbt_fifo_size(xbt_fifo_t); int xbt_fifo_is_in(xbt_fifo_t, void *); /** @} */ -/** @name 3. Manipulating directly items +/** @name 3. Manipulating items directly * * @{ */ diff --git a/src/msg/gos.c b/src/msg/gos.c index ae67680dd9..a5b2646b77 100644 --- a/src/msg/gos.c +++ b/src/msg/gos.c @@ -296,6 +296,7 @@ MSG_error_t MSG_task_put(m_task_t task, task_simdata = task->simdata; task_simdata->sender = process; + task_simdata->source = MSG_process_get_host(process); xbt_assert0(task_simdata->using==1,"Gargl!"); task_simdata->comm = NULL; @@ -481,6 +482,7 @@ m_task_t MSG_parallel_task_create(const char *name, simdata->rate = -1.0; simdata->using = 1; simdata->sender = NULL; + simdata->source = NULL; simdata->host_nb = host_nb; simdata->host_list = xbt_new0(void *, host_nb); diff --git a/src/msg/private.h b/src/msg/private.h index 7616d247e3..559d77453d 100644 --- a/src/msg/private.h +++ b/src/msg/private.h @@ -36,6 +36,7 @@ typedef struct simdata_task { double computation_amount; /* Computation size */ xbt_dynar_t sleeping; /* process to wake-up */ m_process_t sender; + m_host_t source; double priority; double rate; int using; diff --git a/src/msg/task.c b/src/msg/task.c index c353d75047..b6c608a871 100644 --- a/src/msg/task.c +++ b/src/msg/task.c @@ -90,6 +90,17 @@ m_process_t MSG_task_get_sender(m_task_t task) return ((simdata_task_t) task->simdata)->sender; } +/** \ingroup m_task_management + * \brief Return the source of a #m_task_t. + * + * This functions returns the #m_host_t from which this task was sent + */ +m_host_t MSG_task_get_source(m_task_t task) +{ + xbt_assert0(task, "Invalid parameters"); + return ((simdata_task_t) task->simdata)->source; +} + /** \ingroup m_task_management * \brief Return the name of a #m_task_t. *