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

com.twitter.finagle.serverset2.client.EventDeliveryThread.scala Maven / Gradle / Ivy

There is a newer version: 6.37.0
Show newest version
package com.twitter.finagle.serverset2.client

import java.util.concurrent.LinkedBlockingDeque
import com.twitter.util.{Monitor, Updatable}

private[client] object EventDeliveryThread
    extends Thread("com.twitter.zookeeper.client.internal event delivery") {
  private val q = new LinkedBlockingDeque[(Updatable[WatchState], WatchState)]

  def offer(u: Updatable[WatchState], s: WatchState) {
    q.offer((u, s))
  }

  override def run() {
    while (true) {
      val (u, s) = q.take()
      try {
        u() = s
      } catch  {
        case exc: Throwable => Monitor.handle(exc)
      }
    }
  }

  setDaemon(true)
  start()
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy