A
lgorithmique
N
umérique
D
istribuée
Public GIT Repository
projects
/
simgrid.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
model-checker : remove unused argument in functions for heap comparison algorithm
[simgrid.git]
/
src
/
msg
/
msg_host.c
diff --git
a/src/msg/msg_host.c
b/src/msg/msg_host.c
index
02a3375
..
086d9bf
100644
(file)
--- a/
src/msg/msg_host.c
+++ b/
src/msg/msg_host.c
@@
-8,6
+8,9
@@
#include "msg/msg_mailbox.h"
#include "xbt/sysdep.h"
#include "xbt/log.h"
#include "msg/msg_mailbox.h"
#include "xbt/sysdep.h"
#include "xbt/log.h"
+#include "simgrid/simix.h"
+
+XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(msg);
/** @addtogroup m_host_management
* \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Hosts" --> \endhtmlonly
/** @addtogroup m_host_management
* \htmlonly <!-- DOXYGEN_NAVBAR_LABEL="Hosts" --> \endhtmlonly
@@
-25,34
+28,29
@@
/********************************* Host **************************************/
m_host_t __MSG_host_create(smx_host_t workstation)
{
/********************************* Host **************************************/
m_host_t __MSG_host_create(smx_host_t workstation)
{
- const char *name;
- simdata_host_t simdata = xbt_new0(s_simdata_host_t, 1);
+ const char *name = SIMIX_host_get_name(workstation);
m_host_t host = xbt_new0(s_m_host_t, 1);
m_host_t host = xbt_new0(s_m_host_t, 1);
+ s_msg_vm_t vm; // simply to compute the offset
- name = SIMIX_host_get_name(workstation);
- /* Host structure */
- host->name = xbt_strdup(name);
- host->simdata = simdata;
-
- simdata->smx_host = workstation;
+ host->smx_host = workstation;
+ host->vms = xbt_swag_new(xbt_swag_offset(vm,host_vms_hookup));
#ifdef MSG_USE_DEPRECATED
int i;
char alias[MAX_ALIAS_NAME + 1] = { 0 }; /* buffer used to build the key of the mailbox */
if (msg_global->max_channel > 0)
#ifdef MSG_USE_DEPRECATED
int i;
char alias[MAX_ALIAS_NAME + 1] = { 0 }; /* buffer used to build the key of the mailbox */
if (msg_global->max_channel > 0)
-
simdata
->mailboxes = xbt_new0(msg_mailbox_t, msg_global->max_channel);
+
host
->mailboxes = xbt_new0(msg_mailbox_t, msg_global->max_channel);
for (i = 0; i < msg_global->max_channel; i++) {
sprintf(alias, "%s:%d", name, i);
/* the key of the mailbox (in this case) is build from the name of the host and the channel number */
for (i = 0; i < msg_global->max_channel; i++) {
sprintf(alias, "%s:%d", name, i);
/* the key of the mailbox (in this case) is build from the name of the host and the channel number */
-
simdata
->mailboxes[i] = MSG_mailbox_new(alias);
+
host
->mailboxes[i] = MSG_mailbox_new(alias);
memset(alias, 0, MAX_ALIAS_NAME + 1);
}
#endif
memset(alias, 0, MAX_ALIAS_NAME + 1);
}
#endif
- simcall_host_set_data(workstation, host);
xbt_lib_set(host_lib,name,MSG_HOST_LEVEL,host);
return host;
xbt_lib_set(host_lib,name,MSG_HOST_LEVEL,host);
return host;
@@
-67,16
+65,9
@@
m_host_t __MSG_host_create(smx_host_t workstation)
*/
m_host_t MSG_get_host_by_name(const char *name)
{
*/
m_host_t MSG_get_host_by_name(const char *name)
{
- smx_host_t simix_h = NULL;
- simix_h = simcall_host_get_by_name(name);
-
- if (simix_h == NULL)
- return NULL;
-
- return (m_host_t) simcall_host_get_data(simix_h);
+ return (m_host_t) xbt_lib_get_or_null(host_lib,name,MSG_HOST_LEVEL);
}
}
-
/** \ingroup m_host_management
*
* \brief Set the user data of a #m_host_t.
/** \ingroup m_host_management
*
* \brief Set the user data of a #m_host_t.
@@
-86,7
+77,7
@@
m_host_t MSG_get_host_by_name(const char *name)
*/
MSG_error_t MSG_host_set_data(m_host_t host, void *data)
{
*/
MSG_error_t MSG_host_set_data(m_host_t host, void *data)
{
- SIMIX_host_set_data(host->s
imdata->s
mx_host,data);
+ SIMIX_host_set_data(host->smx_host,data);
return MSG_OK;
}
return MSG_OK;
}
@@
-100,8
+91,7
@@
MSG_error_t MSG_host_set_data(m_host_t host, void *data)
*/
void *MSG_host_get_data(m_host_t host)
{
*/
void *MSG_host_get_data(m_host_t host)
{
-
- return SIMIX_host_get_data(host->simdata->smx_host);
+ return SIMIX_host_get_data(host->smx_host);
}
/** \ingroup m_host_management
}
/** \ingroup m_host_management
@@
-111,14
+101,8
@@
void *MSG_host_get_data(m_host_t host)
* This functions checks whether \a host is a valid pointer or not and return
its name.
*/
* This functions checks whether \a host is a valid pointer or not and return
its name.
*/
-const char *MSG_host_get_name(m_host_t host)
-{
-
- xbt_assert((host != NULL)
- && (host->simdata != NULL), "Invalid parameters");
-
- /* Return data */
- return (host->name);
+const char *MSG_host_get_name(m_host_t host) {
+ return SIMIX_host_get_name(host->smx_host);
}
/** \ingroup m_host_management
}
/** \ingroup m_host_management
@@
-132,26
+116,19
@@
m_host_t MSG_host_self(void)
/** \ingroup m_host_management
*
/** \ingroup m_host_management
*
- * \brief Destroys a host
+ * \brief Destroys a host
(internal call only)
*/
*/
-void __MSG_host_destroy(m_host_t host)
-{
- simdata_host_t simdata = NULL;
-
- xbt_assert((host != NULL), "Invalid parameters");
-
- /* Clean simulator data */
- simdata = (host)->simdata;
+void __MSG_host_destroy(m_host_t host) {
#ifdef MSG_USE_DEPRECATED
if (msg_global->max_channel > 0)
#ifdef MSG_USE_DEPRECATED
if (msg_global->max_channel > 0)
- free(
simdata
->mailboxes);
+ free(
host
->mailboxes);
#endif
#endif
-
- free(simdata);
-
- /* Clean host structure */
-
free(host->name
);
+ if (xbt_swag_size(host->vms) > 0 ) {
+ XBT_VERB("Host %s shut down, but it still hosts %d VMs. They will be leaked.",
+ MSG_host_get_name(host),xbt_swag_size(host->vms));
+ }
+
xbt_swag_free(host->vms
);
free(host);
}
free(host);
}
@@
-219,7
+196,7
@@
double MSG_get_host_speed(m_host_t h)
{
xbt_assert((h != NULL), "Invalid parameters");
{
xbt_assert((h != NULL), "Invalid parameters");
- return (simcall_host_get_speed(h->s
imdata->s
mx_host));
+ return (simcall_host_get_speed(h->smx_host));
}
/** \ingroup m_host_management
}
/** \ingroup m_host_management
@@
-244,7
+221,7
@@
xbt_dict_t MSG_host_get_properties(m_host_t host)
{
xbt_assert((host != NULL), "Invalid parameters (host is NULL)");
{
xbt_assert((host != NULL), "Invalid parameters (host is NULL)");
- return (simcall_host_get_properties(host->s
imdata->s
mx_host));
+ return (simcall_host_get_properties(host->smx_host));
}
}
@@
-257,5
+234,5
@@
xbt_dict_t MSG_host_get_properties(m_host_t host)
int MSG_host_is_avail(m_host_t host)
{
xbt_assert((host != NULL), "Invalid parameters (host is NULL)");
int MSG_host_is_avail(m_host_t host)
{
xbt_assert((host != NULL), "Invalid parameters (host is NULL)");
- return (simcall_host_get_state(host->s
imdata->s
mx_host));
+ return (simcall_host_get_state(host->smx_host));
}
}