-/* Copyright (c) 2007-2018. The SimGrid Team. All rights reserved. */
+/* Copyright (c) 2007-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. */
-#include "simgrid/s4u/Host.hpp"
-
-#include "simgrid/kernel/resource/Action.hpp"
#include "src/kernel/activity/SleepImpl.hpp"
+#include "simgrid/Exception.hpp"
+#include "simgrid/kernel/resource/Action.hpp"
+#include "simgrid/s4u/Host.hpp"
#include "src/kernel/context/Context.hpp"
+#include "simgrid/Exception.hpp"
#include "src/simix/ActorImpl.hpp"
#include "src/simix/popping_private.hpp"
#include "src/simix/smx_private.hpp"
#include "src/surf/surf_interface.hpp"
-#include "xbt/ex.hpp"
XBT_LOG_EXTERNAL_DEFAULT_CATEGORY(simix_process);
/* If the host running the synchro failed, notice it. This way, the asking
* actor can be killed if it runs on that host itself */
result = SIMIX_SRC_HOST_FAILURE;
- SMX_EXCEPTION(simcall->issuer, host_error, 0, "Host failed");
+ simcall->issuer->throw_exception(
+ std::make_exception_ptr(simgrid::HostFailureException(XBT_THROW_POINT, "Host failed")));
}
switch (surf_sleep->get_state()) {
case simgrid::kernel::resource::Action::State::FAILED:
- simcall->issuer->context_->iwannadie = 1;
+ simcall->issuer->context_->iwannadie = true;
result = SIMIX_FAILED;
break;
break;
}
if (simcall->issuer->host_->is_off()) {
- simcall->issuer->context_->iwannadie = 1;
+ simcall->issuer->context_->iwannadie = true;
}
simcall_process_sleep__set__result(simcall, result);
simcall->issuer->waiting_synchro = nullptr;
if (simcall->issuer->suspended_) {
XBT_DEBUG("Wait! This process is suspended and can't wake up now.");
- simcall->issuer->suspended_ = 0;
+ simcall->issuer->suspended_ = false;
simcall_HANDLER_process_suspend(simcall, simcall->issuer);
} else {
SIMIX_simcall_answer(simcall);