Next | Trivial Utilities | 99 |
sub mainloop { MAINLOOP: while (1) { sleep ($NEXTOP - time()) while $NEXTOP > time(); %CONF = load_conf($CONFIG); my @QUEUE = read_spoold($CONF{spooldir});
if (@QUEUE == 0) { # empty queue # $NEXTOP = time() + 2; # try again in two seconds # next;
As you can see, I have not made up my mind about what it should do here
# It seems there is a race condition here. # printd #1 reads the queue and finds that it is empty. # The someone prints a document, which writes a new queue item # and starts printd #2. printd #2 exits because printd #1 is # still running. Then printd #1 exits because the queue was empty. # Now the document is never printed. print STDERR "queue empty; exiting\n" if $CONF{debug_printd}; exit 0; }
I eventually decided to have it exit
I did also figure out how to fix the race condition, but I haven't done it yet
Next | Menu | Copyright © 2012 M. J. Dominus |