X-Git-Url: http://info.iut-bm.univ-fcomte.fr/pub/gitweb/simgrid.git/blobdiff_plain/09a4b38584bf148c8e8feb59b3c925496bab22c3..d105e05a38d60fa6ac512c3158d3af1372f7c75d:/src/simix/smx_synchro_private.hpp?ds=sidebyside diff --git a/src/simix/smx_synchro_private.hpp b/src/simix/smx_synchro_private.hpp index 5846b045f1..7123a0f4c9 100644 --- a/src/simix/smx_synchro_private.hpp +++ b/src/simix/smx_synchro_private.hpp @@ -7,11 +7,16 @@ #define SIMIX_SYNCHRO_PRIVATE_H #include "simgrid/s4u/ConditionVariable.hpp" -#include "xbt/swag.h" +#include "src/simix/ActorImpl.hpp" +#include namespace simgrid { namespace simix { +typedef boost::intrusive::list, + &ActorImpl::smx_synchro_hook>> + SynchroList; + class XBT_PUBLIC() MutexImpl { public: MutexImpl(); @@ -26,7 +31,7 @@ public: bool locked = false; smx_actor_t owner = nullptr; // List of sleeping processes: - xbt_swag_t sleeping = nullptr; + simgrid::simix::SynchroList sleeping; // boost::intrusive_ptr support: friend void intrusive_ptr_add_ref(MutexImpl* mutex) @@ -54,13 +59,13 @@ struct s_smx_cond_t { std::atomic_int_fast32_t refcount_{1}; smx_mutex_t mutex = nullptr; - xbt_swag_t sleeping = nullptr; /* list of sleeping process */ + simgrid::simix::SynchroList sleeping; /* list of sleeping processes */ simgrid::s4u::ConditionVariable cond_; }; struct s_smx_sem_t { unsigned int value; - xbt_swag_t sleeping; /* list of sleeping process */ + simgrid::simix::SynchroList sleeping; /* list of sleeping processes */ }; XBT_PRIVATE void SIMIX_post_synchro(smx_activity_t synchro);