Moved this elsewhere as it was cluttering the AbstractScheduler and felt wrong in there ... especially now that it is public and I don't want to expose this and make it part of the public API.