Esempio n. 1
0
 protected void Execute()
 {
     try {
         if (m_ctsk.task != null)
         {
             m_ctsk.task(StaCD);
         }
     }
     finally {
         m_Nucleus.LockCPU();
         try {
             if (m_rtsk.tskstat != TSKSTAT.TTS_DMT)
             {
                 m_rtsk.tskstat = TSKSTAT.TTS_DMT;
                 if (m_Nucleus.m_CurrentTask == this)
                 {
                     m_Nucleus.m_CurrentTask = null;
                 }
                 m_Nucleus.m_ReadyQueue[m_rtsk.tskpri].Remove(this);
                 m_Nucleus.Dispatch();
             }
         }
         finally {
             m_Nucleus.UnlockCPU();
         }
     }
 }
Esempio n. 2
0
 public void SYS_ARCH_UNPROTECT(int lvl)
 {
     m_Nucleus.UnlockCPU();
 }