Hi,

I had asked a similar question before, but I've some doubts regarding the 
correctness of the following code. Please see the following code snippet from 
the file linux-2.6.37/arch/x86/kernel/apm_32.c. This is the core function of 
apm thread.


Question:
Suppose the apm thread has just completed execution of the line 1442 and the 
scheduling happens for some reason, AFAIK, since the apm thread's state has 
been set to TASK_INTERRUPTIBLE, it will be removed from the run-queue. So there 
is a chance for the apm thread to remain suspended indefinitely as nobody is 
there to wakeup the apm thread, correct?

I'm asking this because the same function has been given as an example in the 
following link and would like to confirm the accuracy of the example.

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



1437 static void apm_mainloop(void)
1438 {
1439     DECLARE_WAITQUEUE(wait, current);
1440
1441     add_wait_queue(&apm_waitqueue, &wait);
1442     set_current_state(TASK_INTERRUPTIBLE);
1443     for (;;) {
1444         schedule_timeout(APM_CHECK_TIMEOUT);
1445         if (kthread_should_stop())
1446             break;
1447         /*
1448          * Ok, check all events, check for idle (and mark us sleeping
1449          * so as not to count towards the load average)..
1450          */
1451         set_current_state(TASK_INTERRUPTIBLE);
1452         apm_event_handler();
1453     }
1454     remove_wait_queue(&apm_waitqueue, &wait);
1455 }


--
Thanks,
Sudheer


Please do not print this email unless it is absolutely necessary. 

The information contained in this electronic message and any attachments to 
this message are intended for the exclusive use of the addressee(s) and may 
contain proprietary, confidential or privileged information. If you are not the 
intended recipient, you should not disseminate, distribute or copy this e-mail. 
Please notify the sender immediately and destroy all copies of this message and 
any attachments. 

WARNING: Computer viruses can be transmitted via email. The recipient should 
check this email and any attachments for the presence of viruses. The company 
accepts no liability for any damage caused by any virus transmitted by this 
email. 

www.wipro.com
_______________________________________________
Kernelnewbies mailing list
[email protected]
http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

Reply via email to