The following module was proposed for inclusion in the Module List:
modid: Proc::NiceSleep
DSLIP: bmpfp
description: Configurable sleep and priority access.
userid: JOSHR (Josh Rabinowitz)
chapterid: 4 (Operating_System_Interfaces)
communities:
personal mailing lists, friends
similar:
Time::HiRes
rationale:
There are times when being 'nice' isn't enough -- in some
situations that might not yield the system as much as you want. This
perl module is a rewrite of some code used to keep a long-running
script from slamming a server.
Simple system priorities may not yield the system enough when the
real system hog is a behind-the-scenes database (perhaps from
inefficient database queries). In my experience this might occur
when the program is prone to bottleneck at the disk -- perhaps
because of extensive random seeks, or because the program trying to
write to the file system faster than the disk can handle, or for
many other reasons.
This perl module allows a flexible and easy-to-understand mechanism
to have a process 'sleep' in a configurable and judicious manner, so
as to allow other processes less-obstructed use of the system.
As written, this module attempts to load Time::HiRes, and uses that
module's time() and sleep() replacements whereever possible. This
module is _not_ dependent on Time::HiRes. I had originally intended
to call this module Time::SmartSleep but decided that the current
proposed name (Proc::NiceSleep) was more descriptive and
appropriate: at its core this module makes use of time() and
sleep()-like behavior heavily. It additionally provides an easy,
fault-tolerant setpriority() wrapper called nice(). I believe that
this module should be included in the module list because it offers
a simple, well understood and tolerant wrapper to setpriority()
(called nice()), because it will, if used appropriately, contribute
to the more gentle operation of perl scripts on computers all across
the land, and because it offers an easy way to retro-fit an existing
loop-based script to use sleep() in a quasi-intelligent and, (if
Time::HiRes is loaded and supports it), fine-grained manner.
In the spirit of release early, release often, the current beta
version can be found at http://cpan.perl.org/authors/id/J/JO/JOSHR/
.
I look forward to hearing comments about the API, namespace use, or
features the module should or shouldn't have. Thanks in advance,
Josh 'joshr' Rabinowitz a
enteredby: JOSHR (Josh Rabinowitz)
enteredon: Tue Feb 19 19:11:20 2002 GMT
The resulting entry would be:
Proc::
::NiceSleep bmpfp Configurable sleep and priority access. JOSHR
Thanks for registering,
The Pause Team
PS: The following links are only valid for module list maintainers:
Registration form with editing capabilities:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=7a000000_c0f451d66950d65f&SUBMIT_pause99_add_mod_preview=1
Immediate (one click) registration:
https://pause.perl.org/pause/authenquery?ACTION=add_mod&USERID=7a000000_c0f451d66950d65f&SUBMIT_pause99_add_mod_insertit=1