Example #1
0
void Task::loop()
{
  uint8_t oldSREG = SREG;
  cli();
  Task* current = rlr;
  SREG = oldSREG;
  if (current != 0)
  {
    int t = current->body();
    uint8_t oldSREG = SREG;
    cli();
    current->state = suspended;
    rlr = current->next;
    if (t >= 0)
    {
      current->doWakeup(t);
    }
    SREG = oldSREG;
  }
}