@NotNull
  List<Runnable> doShutdown() {
    if (!shutdown.compareAndSet(false, true)) {
      return Collections.emptyList();
    }

    List<MyScheduledFutureTask<?>> toCancel = getMyTasksFromDelayQueue();
    for (MyScheduledFutureTask<?> task : toCancel) {
      task.cancel(false);
    }
    delayQueue.removeAll(toCancel);

    delayQueue.offer(myLaxativePill);
    //noinspection unchecked,rawtypes
    return (List)toCancel;
  }
@NotNull
  List<Runnable> doShutdown()