All Downloads are FREE. Search and download functionalities are using the official Maven repository.

ch.epfl.scala.debugadapter.internal.Scheduler.scala Maven / Gradle / Ivy

package ch.epfl.scala.debugadapter.internal

import java.util.concurrent.TimeoutException
import java.util.{Timer, TimerTask}
import scala.concurrent.Promise
import scala.concurrent.duration.Duration

private[debugadapter] object Scheduler {
  private val timer = new Timer("DAP Timeout Scheduler", true)

  def timeout[T](promise: Promise[T], duration: Duration): Promise[T] = {
    val task = new TimerTask {
      def run(): Unit =
        promise.tryFailure(
          new TimeoutException(s"Operation timed out after $duration")
        )
    }
    timer.schedule(task, duration.toMillis)
    promise
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy