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

r.dispatch.dispatch-core_2.11.0.11.3.source-code.sleep.scala Maven / Gradle / Ivy

There is a newer version: 0.13.4
Show newest version
package dispatch

import org.jboss.netty.util.{TimerTask, Timeout, Timer}
import scala.concurrent.{ExecutionContext}
import scala.concurrent.duration.Duration
import java.util.{concurrent => juc}

object SleepFuture {
  def apply[T](d: Duration)(todo: => T)
              (implicit timer: Timer,
               executor: ExecutionContext) = {
    val promise = scala.concurrent.Promise[T]()

    val sleepTimeout = timer.newTimeout(new TimerTask {
      def run(timeout: Timeout) {
        promise.complete(util.Try(todo))
      }
    }, d.length, d.unit)

    promise.future
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy