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;