query regarding scheduling

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Title: query regarding scheduling

Hi All,
Please look at the following code from the article Sleeping in the Kernel

http://www.linuxjournal.com/node/8144/print

1  set_current_state(TASK_INTERRUPTIBLE);
2  spin_lock(&list_lock);
3  if(list_empty(&list_head)) {
4         spin_unlock(&list_lock);
5         schedule();
6         spin_lock(&list_lock);
7  }
8  set_current_state(TASK_RUNNING);
9
10 /* Rest of the code ... */
11 spin_unlock(&list_lock);


Is there any chance for the process getting scheduled out of the run-queue at Line# 2 (say the scheduler runs because of timer interrupt)??  If so, the process won't be scheduled again. Right?  If so, what is the best solution for preventing that?


Thanks,
Sudheer


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux