-/* Copyright (c) 2013-2018. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2013-2019. 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. */
static void hostStateChange(s4u::Host& host)
{
- if (host.is_off()) { // just turned off.
+ if (not host.is_on()) { // just turned off.
std::vector<s4u::VirtualMachine*> trash;
/* Find all VMs living on that host */
for (s4u::VirtualMachine* const& vm : VirtualMachineImpl::allVms_)
}
}
-static void addActiveTask(kernel::activity::ExecImplPtr exec)
+static void addActiveTask(kernel::activity::ActivityImplPtr exec)
{
- s4u::VirtualMachine *vm = dynamic_cast<s4u::VirtualMachine*>(exec->host_);
+ s4u::VirtualMachine* vm =
+ dynamic_cast<s4u::VirtualMachine*>(boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(exec)->host_);
if (vm != nullptr) {
VirtualMachineImpl *vm_impl = vm->get_impl();
vm_impl->active_tasks_ = vm_impl->active_tasks_ + 1;
}
}
-static void removeActiveTask(kernel::activity::ExecImplPtr exec)
+static void removeActiveTask(kernel::activity::ActivityImplPtr exec)
{
- s4u::VirtualMachine *vm = dynamic_cast<s4u::VirtualMachine*>(exec->host_);
+ s4u::VirtualMachine* vm =
+ dynamic_cast<s4u::VirtualMachine*>(boost::static_pointer_cast<simgrid::kernel::activity::ExecImpl>(exec)->host_);
if (vm != nullptr) {
VirtualMachineImpl *vm_impl = vm->get_impl();
vm_impl->active_tasks_ = vm_impl->active_tasks_ - 1;
s4u::Host::on_state_change.connect(hostStateChange);
kernel::activity::ExecImpl::on_creation.connect(addActiveTask);
kernel::activity::ExecImpl::on_completion.connect(removeActiveTask);
- kernel::activity::ExecImpl::on_resumed.connect(addActiveTask);
- kernel::activity::ExecImpl::on_suspended.connect(removeActiveTask);
+ kernel::activity::ActivityImpl::on_resumed.connect(addActiveTask);
+ kernel::activity::ActivityImpl::on_suspended.connect(removeActiveTask);
}
double VMModel::next_occuring_event(double now)
for (auto& smx_process : process_list_) {
XBT_DEBUG("kill %s@%s on behalf of %s which shutdown that VM.", smx_process.get_cname(),
smx_process.host_->get_cname(), issuer->get_cname());
- SIMIX_process_kill(&smx_process, issuer);
+ issuer->kill(&smx_process);
}
set_state(s4u::VirtualMachine::state::DESTROYED);