in core/src/main/scala/org/apache/spark/eventhubs/utils/RetryUtils.scala [57:68]
final def after[T](duration: FiniteDuration)(value: => Future[T])(
implicit ec: ExecutionContext): Future[T] = {
val p = Promise[T]()
val d = new Callable[Any] {
override def call(): Unit = {
val task = new Runnable { def run() = p completeWith value }
ec.execute(task)
}
}
scheduled.schedule(d, duration.toMillis, TimeUnit.MILLISECONDS)
p.future
}