A problematic bug in simple-init can be resolved by eliminating one variable. Specifically, change:-
$wait=60*60*24;
while($active&& $running) {
(undef,$wait)=select(undef,undef,undef,$wait);
}
to:-
while($active&& $running) {
select(undef,undef,undef,60*60*24);
}
or suchlike. This change eliminates the case where the variable is zero and a busy wait on select() ensues.
Minor bugs remain. Regardless, simple-init is now suitable for deployment on systems which do not require suspend.
(Score: 2) by cafebabe on Friday August 19 2016, @11:02AM
To get stuff to run on Perl4, Perl5 and Perl6, avoid array slices, :: and /e regular expressions with anything apart from data which is seven bit clean.
The underlying implementation of select() is more problematic. Different kernels may or may not set struct timeval to different levels of granularity. For my purposes, this was nice-to-have but providing a constant with each invocation is sufficient. In the general case, it may be necessary to check elapsed time with a separate system call. This may lead to further erroneous assumptions about time [infiniteundo.com].
1702845791×2