Good point. Maybe it would make sense for markDirty() to cause any currently running scan to be restarted, but not start a scan if one isn't already in progress. Does that seem sensible?