void CSpaceMultiThreadBalanceLength::DispatchThread(UInt32 un_id) {
    while(1) {
       THREAD_WAIT_FOR_START_OF(SenseControl);
       THREAD_DISPATCH_TASK(m_vecControllableEntities);
       THREAD_WAIT_FOR_START_OF(Act);
       THREAD_DISPATCH_TASK(m_vecControllableEntities);
       THREAD_WAIT_FOR_START_OF(Physics);
       THREAD_DISPATCH_TASK(*m_ptPhysicsEngines);
    }
 }
 void CSpaceMultiThreadBalanceLength::SlaveThread(UInt32 un_id) {
    /* Task index */
    size_t unTaskIndex;
    while(1) {
       THREAD_WAIT_FOR_START_OF(SenseControl);
       THREAD_PERFORM_TASK(
          SenseControl,
          m_vecControllableEntities[unTaskIndex]->Sense();
          m_vecControllableEntities[unTaskIndex]->ControlStep();
          );
       THREAD_WAIT_FOR_START_OF(Act);
       THREAD_PERFORM_TASK(
          Act,
          m_vecControllableEntities[unTaskIndex]->Act();
          );
 void CSpaceMultiThreadBalanceLength::SlaveThread() {
    /* Task index */
    size_t unTaskIndex;
    while(1) {
       THREAD_WAIT_FOR_START_OF(Act);
       THREAD_PERFORM_TASK(
          Act,
          m_vecControllableEntities,
          if(m_vecControllableEntities[unTaskIndex]->IsEnabled()) m_vecControllableEntities[unTaskIndex]->Act();
          );
       THREAD_WAIT_FOR_START_OF(Physics);
       THREAD_PERFORM_TASK(
          Physics,
          *m_ptPhysicsEngines,
          (*m_ptPhysicsEngines)[unTaskIndex]->Update();
          );