Bruce Giles wrote:Thanks for the explanation -- that mostly makes sense. But one thing still confuses me -- the part about the scheduler assessing the state of mounted volumes. When I started up this morning, the external drive WASN'T mounted. It wasn't even plugged in yet.
This is where it gets complicated for the scheduler.
Information about disk and volumes is provided to applications via a series of events that the application can subscribe to. Once an application subscribes, it receives a disk mount event when you plug in a volume and disk unmount event when you eject it.
The action event schedules are driven by these events. When OS X sends a disk mount event, QRecall sees if any actions need to start. When the scheduler receives a disk unmount event, it sees if there are any actions that need to be stopped.
But there are no events associated with volumes that are already mounted (or not mounted, which is the more perverse case) when the application first starts. So some code would have to written to examine the state of the mounted volumes when the scheduler starts and compare that against assumptions about the state of mounted volumes carried over from when the scheduler last shut down.
If I added a "ignore if no archive" condition to each of the actions, would that help?
That will fix the problem. Conditions are evaluated when the action is started, so as soon as the action is started it will check its conditions and skip the action (assuming the volume isn't online).