With cmdport 0 and port 0, it's now possible that there is no descriptor
watched or timer running, i.e. chronyd doing nothing and only waiting to
be terminated. Replace the assertion with LOG_FATAL to exit properly.
/* if there are no file descriptors being waited on and no
timeout set, this is clearly ridiculous, so stop the run */
- assert(ptv || n_read_fds);
+ if (!ptv && !n_read_fds) {
+ LOG_FATAL(LOGF_Scheduler, "Nothing to do");
+ }
/* Copy current set of read file descriptors */
memcpy((void *) &rd, (void *) &read_fds, sizeof(fd_set));