On 07/28/2010 05:34 AM, Hal Murray wrote: > Can somebody confirm that sleep does what I expect on suspended systems? > > My expectation is that the sleep timer logically ticks when suspended, but > that the system won't get woken up when the sleep timer expires.
IIRC it does not. The mechanics of this seem to have changed across the kernel over the last 2 years but I believe the overall issue that I faced in my scripts is the same. Many of my scripts that run across resume use the the RTC clock value for delay rather than sleep. When you resume all the kernel timers (save the system clock) are reset to zero. > For example, suppose my program does a sleep(100), and shortly after that the > system suspends. > > If the next wakeup is 200 seconds after the start of the sleep, my program > should run then (along with whatever caused the wakeup). I don't believe so... Your program will run 100 seconds after the wakeup. > Or if the system wakes up after 50 seconds and doesn't suspend again, my > program should run 100 seconds after it started to sleep. > > If not, how does it work? Since the timers are reset at suspend/resume its a bit unpredictable. My power logging scripts originally used 'sleep'. But what I found was that if the time-to-suspend was shorter than sleep then the script would have cases where it would never run. BUT, I never did an exhaustive exploration I switched to RTC delays and side stepped the entire issue. Last time I tried it seemed different than the first time but still had problems. Some of my other scripts (and runin tests) also use the EC wakeup timer rather than the RTC. But I've recently discovered that wakeups via the EC do not seem to be 100% reliable. Currently they are 1 shot but it looks like I'll have to watch and see if the system really wakes up and then if not then re-issue the wakeup. -- Richard A. Smith <rich...@laptop.org> One Laptop per Child _______________________________________________ Devel mailing list Devel@lists.laptop.org http://lists.laptop.org/listinfo/devel