Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Try to have MC accept C++ requests... One assert commented out, though.
[simgrid.git] / src / mc / checker / CommunicationDeterminismChecker.cpp
index fa5ab40..f066b6f 100644 (file)
@@ -197,15 +197,15 @@ void CommunicationDeterminismChecker::get_comm_pattern(xbt_dynar_t list, smx_sim
       static_cast<simgrid::kernel::activity::Comm*>(temp_synchro.getBuffer());
 
     char* remote_name = mc_model_checker->process().read<char*>(
-      (std::uint64_t)(synchro->mbox ? &synchro->mbox->name : &synchro->mbox_cpy->name));
+        (std::uint64_t)(synchro->mbox ? &synchro->mbox->name_ : &synchro->mbox_cpy->name_));
     pattern->rdv = mc_model_checker->process().read_string(remote_name);
     pattern->src_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(synchro->src_proc))->pid;
     pattern->src_host = MC_smx_actor_get_host_name(issuer);
 
-    struct s_smpi_mpi_request mpi_request =
-      mc_model_checker->process().read<s_smpi_mpi_request>(
+    simgrid::smpi::Request mpi_request =
+      mc_model_checker->process().read<simgrid::smpi::Request>(
         (std::uint64_t) simcall_comm_isend__get__data(request));
-    pattern->tag = mpi_request.tag;
+    pattern->tag = mpi_request.tag();
 
     if (synchro->src_buff != nullptr){
       pattern->data.resize(synchro->src_buff_size);
@@ -213,7 +213,7 @@ void CommunicationDeterminismChecker::get_comm_pattern(xbt_dynar_t list, smx_sim
         pattern->data.data(), pattern->data.size(),
         remote(synchro->src_buff));
     }
-    if(mpi_request.detached){
+    if(mpi_request.detached()){
       if (!this->initial_communications_pattern_done) {
         /* Store comm pattern */
         simgrid::mc::PatternCommunicationList* list = xbt_dynar_get_as(
@@ -233,10 +233,10 @@ void CommunicationDeterminismChecker::get_comm_pattern(xbt_dynar_t list, smx_sim
     pattern->type = simgrid::mc::PatternCommunicationType::receive;
     pattern->comm_addr = simcall_comm_irecv__get__result(request);
 
-    struct s_smpi_mpi_request mpi_request;
+    simgrid::smpi::Request mpi_request;
     mc_model_checker->process().read(
-      &mpi_request, remote((struct s_smpi_mpi_request*)simcall_comm_irecv__get__data(request)));
-    pattern->tag = mpi_request.tag;
+      &mpi_request, remote((simgrid::smpi::Request*)simcall_comm_irecv__get__data(request)));
+    pattern->tag = mpi_request.tag();
 
     simgrid::mc::Remote<simgrid::kernel::activity::Comm> temp_comm;
     mc_model_checker->process().read(temp_comm, remote(
@@ -244,8 +244,7 @@ void CommunicationDeterminismChecker::get_comm_pattern(xbt_dynar_t list, smx_sim
     simgrid::kernel::activity::Comm* comm = temp_comm.getBuffer();
 
     char* remote_name;
-    mc_model_checker->process().read(&remote_name,
-      remote(comm->mbox ? &comm->mbox->name : &comm->mbox_cpy->name));
+    mc_model_checker->process().read(&remote_name, remote(comm->mbox ? &comm->mbox->name_ : &comm->mbox_cpy->name_));
     pattern->rdv = mc_model_checker->process().read_string(remote_name);
     pattern->dst_proc = mc_model_checker->process().resolveActor(simgrid::mc::remote(comm->dst_proc))->pid;
     pattern->dst_host = MC_smx_actor_get_host_name(issuer);
@@ -512,9 +511,9 @@ void CommunicationDeterminismChecker::main(void)
       bool compare_snapshots = all_communications_are_finished()
         && this->initial_communications_pattern_done;
 
-      if (_sg_mc_visited == 0
-          || (visited_state = visitedStates_.addVisitedState(
-            expandedStatesCount_, next_state.get(), compare_snapshots)) == nullptr) {
+      if (_sg_mc_max_visited_states == 0 ||
+          (visited_state = visitedStates_.addVisitedState(expandedStatesCount_, next_state.get(), compare_snapshots)) ==
+              nullptr) {
 
         /* Get enabled actors and insert them in the interleave set of the next state */
         for (auto& actor : mc_model_checker->process().actors())