code: func HandleScheduleNextQueueItem(ds storage.DeviceSession, mode storage.DeviceMode) error {
  	ctx := dataContext{
  		DeviceMode:    mode,
  		DeviceSession: ds,
  	}
  
  	for _, t := range scheduleNextQueueItemTasks {
  		if err := t(&ctx); err != nil {
  			if err == ErrAbort {
  				return nil
  			}
  			return err
  		}
  	}
  
  	return nil
  }
docs: // HandleScheduleNextQueueItem handles scheduling the next device-queue item.