return session->actor_is_enabled(pid);
}
+unsigned long mc_api::get_maxpid() const
+{
+ return MC_smx_get_maxpid();
+}
+
void mc_api::s_initialize() const
{
session->initialize();
return mc_model_checker->get_host_name(hostname);
}
-PageStore& mc_api::mc_page_store() const
-{
- return mc_model_checker->page_store();
-}
-
void mc_api::mc_dump_record_path() const
{
simgrid::mc::dumpRecordPath();
return simgrid::mc::snapshot_equal(s1, s2);
}
+simgrid::mc::Snapshot* mc_api::take_snapshot(int num_state) const
+{
+ auto snapshot = new simgrid::mc::Snapshot(num_state);
+ return snapshot;
+}
+
void mc_api::s_close() const
{
session->close();
// ACTOR FUNCTIONS
std::vector<simgrid::mc::ActorInformation>& get_actors() const;
bool actor_is_enabled(aid_t pid) const;
+ unsigned long get_maxpid() const;
// MODEL_CHECKER FUNCTIONS
ModelChecker* get_model_checker() const;
void mc_wait_for_requests() const;
void mc_exit(int status) const;
std::string const& mc_get_host_name(std::string const& hostname) const;
- PageStore& mc_page_store() const;
void mc_dump_record_path() const;
smx_simcall_t mc_state_choose_request(simgrid::mc::State* state) const;
// SNAPSHOT FUNCTIONS
bool snapshot_equal(const Snapshot* s1, const Snapshot* s2) const;
+ simgrid::mc::Snapshot* take_snapshot(int num_state) const;
// SESSION FUNCTIONS
void s_initialize() const;
#include "src/mc/mc_comm_pattern.hpp"
#include "src/mc/mc_config.hpp"
#include "src/mc/mc_request.hpp"
-#include "src/mc/mc_smx.hpp"
+#include "src/mc/mc_api.hpp"
#include <boost/range/algorithm.hpp>
using simgrid::mc::remote;
+using mcapi = simgrid::mc::mc_api;
namespace simgrid {
namespace mc {
State::State(unsigned long state_number) : num_(state_number)
{
this->internal_comm_.clear();
-
- actor_states_.resize(MC_smx_get_maxpid());
+ auto maxpid = mcapi::get().get_maxpid();
+ actor_states_.resize(maxpid);
/* Stateful model checking */
if ((_sg_mc_checkpoint > 0 && (state_number % _sg_mc_checkpoint == 0)) || _sg_mc_termination) {
- system_state_ = std::make_shared<simgrid::mc::Snapshot>(num_);
+ auto snapshot_ptr = mcapi::get().take_snapshot(num_);
+ system_state_ = std::shared_ptr<simgrid::mc::Snapshot>(snapshot_ptr);
if (_sg_mc_comms_determinism || _sg_mc_send_determinism) {
MC_state_copy_incomplete_communications_pattern(this);
MC_state_copy_index_communications_pattern(this);