Subject: | update entry doesn't reschedule; another reaper divot |
If one uses update_entry to replace the schedule for a task, the task
runs once at the previous time, then picks up the new schedule.
Seems like we need a $self->{entries_changed} = 1;
Here is a case where I changed the scheduled second for an active entry
from 5 to 6. Job 1 made the change; Job 0 was the target.
Tasks Task[20872](I) Mon Jun 27 22:12:13 2011: ReplaceSchedule: New
schedule for Cleanup: */3 * * * * 6
(other activity)
Tasks Task[20872](I) Mon Jun 27 22:15:05 2011: Schedule::Cron -
Starting job 0
Tasks Task[20872](I) Mon Jun 27 22:15:05 2011: Schedule::Cron -
Finished job 0
Tasks Task[20872](I) Mon Jun 27 22:15:06 2011: Schedule::Cron -
Starting job 0
Also, a code-reading note: I believe REAPER (which I don't use) should
be localizing $? and ${^CHILD_ERROR_NATIVE} since wait and waitpid both
use them. There could be some pretty mysterious "errors" if a SIGCHLD
happens to hit when someone is checking $? (e.g. after system())..
You already localize $! & $%!.