class DaemonThreadFactory implements ThreadFactory {
        public Thread newThread(Runnable runnable) {
            Thread thread = new Thread(runnable);
            thread.setDaemon(true);
            return thread;
        }
    }

    private static final ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor(new DaemonThreadFactory());

    public static ScheduledFuture<?> schedule(Runnable command, long delay, TimeUnit unit) {
        return executor.schedule(command, delay, unit);
    }

    /**
     * For unit test. Wait until the executor Thread is running.
     */
    public static void awaitInitialization() throws InterruptedException {<FILL_FUNCTION_BODY>

        CountDownLatch latch = new CountDownLatch(1);
        Scheduler.schedule(latch::countDown, 0, TimeUnit.MILLISECONDS);
        latch.await();
    
<no_super_class>