> Hi, > > I'd like to propose two new features to "sleep": > > 1) Sub-Second resolution
GNU sleep version 2.0a and later implements that. The NEWS file contains: [2.0a] * sleep accepts floating point arguments on command line And the info page includes: Historical implementations of `sleep' have required that NUMBER be an integer. However, GNU `sleep' accepts arbitrary floating point numbers. The latest test release is available at: ftp://alpha.gnu.org/gnu/fetish/sh-utils-2.0.11.tar.gz ftp://freefriends.org/gnu/fetish/sh-utils-2.0.11.tar.gz > 2) Wait for ms multiple > > You can't control loop cycle times with sleep: If you "sleep 1" and > your loop payload takes 0.1 second you end up with a 1.1+X second > cycle time. If we wait for a timer modulo interval to flip over, we > have exact control over loop cycle time. An implementation could > look like: > > a=timerfunction mod interval > aa=a > while a>= aa > sleep 10 ms > a=aa > a=timerfunction mod interval > wend > > We could use a "-m" parameter for this changed behavior You could 'time' the loop payload, extract the real time, subtract that from the desired loop time, guarentee that it is non-negative, sleep for that value. Implementation left as an excercise to the reader. :-) [Hint: The "time --format='%e\n'" option would probably be useful.] > A new program could supplement "nice". In some (rare) cases you want > to control the maximum CPU load a program can generate. It could be > dome via signals. To allow a maximum CPU load of 0.5 for a program > you can send a TSTOP signal , wait 0.5 seconds, send CONT and wait > 0.5 seconds and so on. > > I know that programs can intercept signals but it'll work for most > programs. low_priority_task_to_run & while sleep 0.5; do kill -STOP $! || break sleep 0.5 kill -CONT $! || break done Interesting... Bob _______________________________________________ Bug-sh-utils mailing list [EMAIL PROTECTED] http://mail.gnu.org/mailman/listinfo/bug-sh-utils
