11 #ifndef SPACE_MULTI_THREAD_BALANCE_LENGTH_H
12 #define SPACE_MULTI_THREAD_BALANCE_LENGTH_H
18 #include <argos3/core/simulator/space/space.h>
47 struct SThreadLaunchData {
51 SThreadLaunchData(
UInt32 un_thread_id,
53 ThreadId(un_thread_id),
58 pthread_t* m_ptThreads;
61 SThreadLaunchData** m_psThreadData;
67 pthread_mutex_t m_tStartSenseControlPhaseMutex;
69 pthread_mutex_t m_tStartActPhaseMutex;
71 pthread_mutex_t m_tStartPhysicsPhaseMutex;
73 pthread_mutex_t m_tStartMediaPhaseMutex;
75 pthread_mutex_t m_tFetchTaskMutex;
78 pthread_cond_t m_tStartSenseControlPhaseCond;
80 pthread_cond_t m_tStartActPhaseCond;
82 pthread_cond_t m_tStartPhysicsPhaseCond;
84 pthread_cond_t m_tStartMediaPhaseCond;
86 pthread_cond_t m_tFetchTaskCond;
89 UInt32 m_unSenseControlPhaseIdleCounter;
91 UInt32 m_unActPhaseIdleCounter;
93 UInt32 m_unPhysicsPhaseIdleCounter;
95 UInt32 m_unMediaPhaseIdleCounter;
virtual void UpdateMedia()
virtual void UpdatePhysics()
virtual ~CSpaceMultiThreadBalanceLength()
ticpp::Element TConfigurationNode
The ARGoS configuration XML node.
friend void * LaunchThreadBalanceLength(void *p_data)
unsigned int UInt32
32-bit unsigned integer.
virtual void UpdateControllableEntitiesSenseStep()
virtual void Update()
Updates the space.
virtual void Init(TConfigurationNode &t_tree)
Initializes the space using the
section of the XML configuration file.
CSpaceMultiThreadBalanceLength()
The namespace containing all the ARGoS related code.
virtual void UpdateControllableEntitiesAct()
virtual void Destroy()
Destroys the space and all its entities.