1 /* Copyright (c) 2015-2023. The SimGrid Team. All rights reserved. */
3 /* This program is free software; you can redistribute it and/or modify it
4 * under the terms of the license (GNU LGPL) which comes with this package. */
6 #ifndef SIMGRID_MC_EXIT_HPP
7 #define SIMGRID_MC_EXIT_HPP
11 namespace simgrid::mc {
13 enum class ExitStatus {
24 struct McError : public std::exception {
25 const ExitStatus value;
26 McError(ExitStatus v = ExitStatus::ERROR) : value(v) {}
29 struct DeadlockError : public McError {
30 DeadlockError() : McError(ExitStatus::DEADLOCK) {}
32 struct TerminationError : public McError {
33 TerminationError() : McError(ExitStatus::NON_TERMINATION) {}
35 struct LivenessError : public McError {
36 LivenessError() : McError(ExitStatus::LIVENESS) {}
38 } // namespace simgrid::mc