Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Use a deque instead of an intrusive hook for all VMs
[simgrid.git] / src / surf / HostImpl.cpp
index 66c97a6..d4ae879 100644 (file)
@@ -44,11 +44,8 @@ HostImpl *HostModel::createHost(const char *name, kernel::routing::NetCard *netE
 void HostModel::adjustWeightOfDummyCpuActions()
 {
   /* iterate for all virtual machines */
-  for (VMModel::vm_list_t::iterator iter =
-         VMModel::ws_vms.begin();
-       iter !=  VMModel::ws_vms.end(); ++iter) {
+  for (VirtualMachine *ws_vm : VirtualMachine::allVms_) {
 
-    VirtualMachine *ws_vm = &*iter;
     Cpu *cpu = ws_vm->p_cpu;
 
     int is_active = lmm_constraint_used(cpu->getModel()->getMaxminSystem(), cpu->getConstraint());
@@ -115,20 +112,13 @@ Action *HostModel::executeParallelTask(int host_nb,
 /************
  * Resource *
  ************/
-
-
-void HostImpl::classInit()
-{
-  if (!EXTENSION_ID.valid()) {
-    EXTENSION_ID = simgrid::s4u::Host::extension_create<simgrid::surf::HostImpl>();
-  }
-}
-
 HostImpl::HostImpl(simgrid::surf::HostModel *model, const char *name, xbt_dynar_t storage, Cpu *cpu)
  : Resource(model, name)
  , PropertyHolder(nullptr)
  , p_storage(storage), p_cpu(cpu)
 {
+  if (!EXTENSION_ID.valid())
+    EXTENSION_ID = simgrid::s4u::Host::extension_create<simgrid::surf::HostImpl>();
   p_params.ramsize = 0;
 }
 
@@ -386,13 +376,8 @@ xbt_dynar_t HostImpl::getVms()
 {
   xbt_dynar_t dyn = xbt_dynar_new(sizeof(simgrid::surf::VirtualMachine*), nullptr);
 
-  /* iterate for all virtual machines */
-  for (simgrid::surf::VMModel::vm_list_t::iterator iter =
-         simgrid::surf::VMModel::ws_vms.begin();
-       iter !=  simgrid::surf::VMModel::ws_vms.end(); ++iter) {
-
-    simgrid::surf::VirtualMachine *ws_vm = &*iter;
-    if (this == ws_vm->getPm()->extension(simgrid::surf::HostImpl::EXTENSION_ID))
+  for (VirtualMachine *ws_vm : VirtualMachine::allVms_) {
+    if (this == ws_vm->getPm()->extension<simgrid::surf::HostImpl>())
       xbt_dynar_push(dyn, &ws_vm);
   }