next up previous contents
Next: Makra z rodziny wait_event Up: Bezpośrednie wywoływanie schedule() Previous: Przykład bezpośredniego wywołania schedule()   Spis rzeczy

Funkcje z rodziny sleep_on

W pliku kernel/sched.c są zdefiniowane funkcje sleep_on, sleep_on_interruptible i sleep_on_timeout.

Oto kod funkcji sleep_on:

void sleep_on(wait_queue_head_t *q)
{
  wait_queue_t wait;			
  init_waitqueue_entry(&wait, current);
  ...
  __add_wait_queue(q, &wait);			
  ...
  current->state = TASK_UNINTERRUPTIBLE;
  schedule();
  ...
  __remove_wait_queue(q, &wait);				
  ...
}



Ignacy Kowalczyk 2001-11-16