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
plug two memleaks
[simgrid.git]
/
src
/
s4u
/
s4u_host.cpp
diff --git
a/src/s4u/s4u_host.cpp
b/src/s4u/s4u_host.cpp
index
ebf3823
..
4d74e35
100644
(file)
--- a/
src/s4u/s4u_host.cpp
+++ b/
src/s4u/s4u_host.cpp
@@
-1,5
+1,4
@@
-/* Copyright (c) 2006-2014. The SimGrid Team.
- * All rights reserved. */
+/* Copyright (c) 2006-2017. The SimGrid Team. All rights reserved. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
/* This program is free software; you can redistribute it and/or modify it
* under the terms of the license (GNU LGPL) which comes with this package. */
@@
-8,7
+7,7
@@
#include <functional>
#include <stdexcept>
#include <functional>
#include <stdexcept>
-#include <
unordered_
map>
+#include <map>
#include "simgrid/s4u/engine.hpp"
#include "simgrid/s4u/host.hpp"
#include "simgrid/s4u/engine.hpp"
#include "simgrid/s4u/host.hpp"
@@
-24,9
+23,6
@@
XBT_LOG_EXTERNAL_CATEGORY(surf_route);
XBT_LOG_EXTERNAL_CATEGORY(surf_route);
-std::unordered_map<std::string, simgrid::s4u::Host*> host_list; // FIXME: move it to Engine
-
-int MSG_HOST_LEVEL = -1;
int USER_HOST_LEVEL = -1;
namespace simgrid {
int USER_HOST_LEVEL = -1;
namespace simgrid {
@@
-37,9
+33,12
@@
template class Extendable<simgrid::s4u::Host>;
namespace s4u {
namespace s4u {
+std::map<std::string, simgrid::s4u::Host*> host_list; // FIXME: move it to Engine
+
simgrid::xbt::signal<void(Host&)> Host::onCreation;
simgrid::xbt::signal<void(Host&)> Host::onDestruction;
simgrid::xbt::signal<void(Host&)> Host::onStateChange;
simgrid::xbt::signal<void(Host&)> Host::onCreation;
simgrid::xbt::signal<void(Host&)> Host::onDestruction;
simgrid::xbt::signal<void(Host&)> Host::onStateChange;
+simgrid::xbt::signal<void(Host&)> Host::onSpeedChange;
Host::Host(const char* name)
: name_(name)
Host::Host(const char* name)
: name_(name)
@@
-195,22
+194,15
@@
void Host::setProperty(const char*key, const char *value){
}
/** Get the processes attached to the host */
}
/** Get the processes attached to the host */
-xbt_swag_t Host::processes()
-{
- return simgrid::simix::kernelImmediate([this] {
- return this->extension<simgrid::simix::Host>()->process_list;
- });
-}
-
-/** Get the peak power of a host */
-double Host::getPstateSpeedCurrent()
+void Host::processes(std::vector<ActorPtr>* list)
{
{
- return simgrid::simix::kernelImmediate([this] {
- return this->pimpl_cpu->getPstateSpeedCurrent();
- });
+ smx_actor_t actor = NULL;
+ xbt_swag_foreach(actor, this->extension<simgrid::simix::Host>()->process_list) {
+ list->push_back(actor->iface());
+ }
}
}
-/**
Get one power peak (in flops/s) of a host at a given pstate
*/
+/**
@brief Get the peak processor speed (in flops/s), at the specified pstate
*/
double Host::getPstateSpeed(int pstate_index)
{
return simgrid::simix::kernelImmediate([this, pstate_index] {
double Host::getPstateSpeed(int pstate_index)
{
return simgrid::simix::kernelImmediate([this, pstate_index] {
@@
-218,10
+210,11
@@
double Host::getPstateSpeed(int pstate_index)
});
}
});
}
-/** @brief Get the
speed of the cpu associated to a host
*/
+/** @brief Get the
peak processor speed (in flops/s), at the current pstate
*/
double Host::speed() {
return pimpl_cpu->getSpeed(1.0);
}
double Host::speed() {
return pimpl_cpu->getSpeed(1.0);
}
+
/** @brief Returns the number of core of the processor. */
int Host::coreCount() {
return pimpl_cpu->coreCount();
/** @brief Returns the number of core of the processor. */
int Host::coreCount() {
return pimpl_cpu->coreCount();
@@
-257,10
+250,10
@@
xbt_dict_t Host::mountedStoragesAsDict()
* \brief Returns the list of storages attached to an host.
* \return a dict containing all storages attached to the host
*/
* \brief Returns the list of storages attached to an host.
* \return a dict containing all storages attached to the host
*/
-
xbt_dynar_t Host::attachedStorages(
)
+
void Host::attachedStorages(std::vector<const char*>* storages
)
{
{
- return simgrid::simix::kernelImmediate([this] {
- return this->pimpl_->getAttachedStorageList();
+ simgrid::simix::kernelImmediate([this, storages] {
+ this->pimpl_->getAttachedStorageList(storages);
});
}
});
}