Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Hack to make liveness work on Debian testing
[simgrid.git] / src / kernel / activity / MailboxImpl.hpp
index d37e756..9d30a4e 100644 (file)
@@ -6,6 +6,7 @@
 #ifndef SIMGRID_KERNEL_ACTIVITY_MAILBOX_HPP
 #define SIMGRID_KERNEL_ACTIVITY_MAILBOX_HPP
 
+#include "simgrid/config.h" /* FIXME: KILLME. This makes the ABI config-dependent, but mandatory for the hack below */
 #include "simgrid/s4u/Engine.hpp"
 #include "simgrid/s4u/Mailbox.hpp"
 #include "src/kernel/activity/CommImpl.hpp"
@@ -19,9 +20,18 @@ class MailboxImpl {
   s4u::Mailbox piface_;
   std::string name_;
   actor::ActorImplPtr permanent_receiver_; // actor to which the mailbox is attached
+#if SIMGRID_HAVE_STATEFUL_MC
+  /* Using deque here is faster in benchmarks, but break the state equality heuristic of Liveness checking on Debian
+   * testing. This would desserve a proper investiguation, but simply use a single-sided list for the time being. HACK.
+   */
+  std::list<CommImplPtr> comm_queue_;
+  // messages already received in the permanent receive mode
+  std::list<CommImplPtr> done_comm_queue_;
+#else
   std::deque<CommImplPtr> comm_queue_;
   // messages already received in the permanent receive mode
   std::deque<CommImplPtr> done_comm_queue_;
+#endif
 
   friend s4u::Engine;
   friend s4u::Mailbox;