7 #ifndef SPACE_MULTI_THREAD_BALANCE_QUANTITY_H
8 #define SPACE_MULTI_THREAD_BALANCE_QUANTITY_H
10 #include <argos3/core/simulator/space/space.h>
22 struct SUpdateThreadData {
26 SUpdateThreadData(
UInt32 un_thread_id,
28 ThreadId(un_thread_id),
38 SUpdateThreadData** m_psUpdateThreadData;
41 pthread_t* m_ptUpdateThreads;
44 UInt32 m_unSenseControlStepPhaseDoneCounter;
45 UInt32 m_unActPhaseDoneCounter;
46 UInt32 m_unPhysicsPhaseDoneCounter;
47 UInt32 m_unMediaPhaseDoneCounter;
50 pthread_mutex_t m_tSenseControlStepConditionalMutex;
51 pthread_mutex_t m_tActConditionalMutex;
52 pthread_mutex_t m_tPhysicsConditionalMutex;
53 pthread_mutex_t m_tMediaConditionalMutex;
56 pthread_cond_t m_tSenseControlStepConditional;
57 pthread_cond_t m_tActConditional;
58 pthread_cond_t m_tPhysicsConditional;
59 pthread_cond_t m_tMediaConditional;
63 bool m_bIsControllableEntityAssignmentRecalculationNeeded;
86 void UpdateThread(
UInt32 un_id);