void () { LOG.debug("schedule"); if (disposed.get() || scheduled.getAndSet(true)) return; synchronized (files) { if (session != null || files.isEmpty()) return; } LOG.debug("scheduled for ", delay, " seconds"); executor.schedule(this::launch, delay, SECONDS); }