#include <cassert>
+#include "simgrid/sg_config.h" // sg_cfg_get_boolean
+
#include "ModelChecker.hpp"
#include "PageStore.hpp"
namespace simgrid {
namespace mc {
-ModelChecker::ModelChecker(pid_t pid, int socket)
- : page_store_(500)
+ModelChecker::ModelChecker(pid_t pid, int socket) :
+ hostnames_(xbt_dict_new()),
+ page_store_(500),
+ process_(pid, socket),
+ parent_snapshot_(nullptr)
{
- this->hostnames_ = xbt_dict_new();
- MC_process_init(&this->process(), pid, socket);
+ // TODO, avoid direct dependency on sg_cfg
+ process_.privatized(sg_cfg_get_boolean("smpi/privatize_global_variables"));
}
ModelChecker::~ModelChecker()
{
- MC_process_clear(&this->process_);
xbt_dict_free(&this->hostnames_);
}
// Lookup the host name in the dictionary (or create it):
xbt_dictelm_t elt = xbt_dict_get_elm_or_null(this->hostnames_, hostname);
if (!elt) {
- xbt_mheap_t heap = mmalloc_set_current_heap(mc_heap);
xbt_dict_set(this->hostnames_, hostname, NULL, NULL);
elt = xbt_dict_get_elm_or_null(this->hostnames_, hostname);
assert(elt);
- mmalloc_set_current_heap(heap);
}
return elt->key;
}