Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Merge CheckerSide::start() intp the constructor
authorMartin Quinson <martin.quinson@ens-rennes.fr>
Sat, 18 Mar 2023 11:21:30 +0000 (12:21 +0100)
committerMartin Quinson <martin.quinson@ens-rennes.fr>
Sat, 18 Mar 2023 11:21:30 +0000 (12:21 +0100)
src/mc/api/RemoteApp.cpp
src/mc/remote/CheckerSide.cpp
src/mc/remote/CheckerSide.hpp

index 813a482..969e5c3 100644 (file)
@@ -125,10 +125,10 @@ RemoteApp::RemoteApp(const std::vector<char*>& args)
 
   xbt_assert(mc_model_checker == nullptr, "Did you manage to start the MC twice in this process?");
 
-  checker_side_  = std::make_unique<simgrid::mc::CheckerSide>(sockets[1]);
   auto memory      = std::make_unique<simgrid::mc::RemoteProcessMemory>(pid);
   model_checker_   = std::make_unique<simgrid::mc::ModelChecker>(std::move(memory));
   mc_model_checker = model_checker_.get();
+  checker_side_    = std::make_unique<simgrid::mc::CheckerSide>(sockets[1], model_checker_.get());
 
   start();
 
@@ -149,8 +149,6 @@ RemoteApp::~RemoteApp()
 }
 void RemoteApp::start()
 {
-  checker_side_->start(model_checker_.get());
-
   XBT_DEBUG("Waiting for the model-checked process");
   int status;
 
index 02e8e05..bef9b3e 100644 (file)
@@ -12,8 +12,7 @@
 XBT_LOG_NEW_DEFAULT_SUBCATEGORY(mc_checkerside, mc, "MC communication with the application");
 
 namespace simgrid::mc {
-
-void CheckerSide::start(ModelChecker* mc)
+CheckerSide::CheckerSide(int sockfd, ModelChecker* mc) : channel_(sockfd)
 {
   auto* base = event_base_new();
   base_.reset(base);
index d2d5955..fced9be 100644 (file)
@@ -23,7 +23,7 @@ class CheckerSide {
   Channel channel_;
 
 public:
-  explicit CheckerSide(int sockfd) : channel_(sockfd) {}
+  explicit CheckerSide(int sockfd, ModelChecker* mc);
 
   // No copy:
   CheckerSide(CheckerSide const&) = delete;
@@ -33,7 +33,6 @@ public:
   Channel const& get_channel() const { return channel_; }
   Channel& get_channel() { return channel_; }
 
-  void start(ModelChecker* mc);
   void dispatch() const;
   void break_loop() const;
 };