Example #1
0
void cancel(Fn_0<void> *fn)
  {
  if(!fn) return;
  Ttask *t;
  for(t=timer_tasks.next;t;t=t->link.next)
    if(t->fn==fn)
      break;
  if(t)
    {
    t->fn->cancel();
    t->fn=0;
    timer_tasks.deque(t);
    delete t;
    }
  }
Example #2
0
void note(int usecs)
 {
 Ttask *t;
 for(t=timer_tasks.next;t;t=t->link.next)
   if(t->usecs>0)
     {
     t->usecs-=usecs;
     }
 while (!timer_tasks.empty() && timer_tasks.next->usecs<=0)
   {
   t=timer_tasks.next;
   timer_tasks.deque(t);
   t->fn->cont(t->fn);
   delete t;
   }
 }
Example #3
0
Port::~Port()
  {
  ports.deque(this);
  }