Skip to content

Instantly share code, notes, and snippets.

@bmdhacks
Created February 10, 2014 22:15
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bmdhacks/3100043c69478b9f7c57 to your computer and use it in GitHub Desktop.
Save bmdhacks/3100043c69478b9f7c57 to your computer and use it in GitHub Desktop.
diff --git a/finagle/finagle-core/src/main/scala/com/twitter/finagle/client/DefaultClient.scala b/finagle/finagle-core/src/main/scala/com/twitter/finagle/client/DefaultClient.scala
index 80812bc..5821417 100644
--- a/finagle/finagle-core/src/main/scala/com/twitter/finagle/client/DefaultClient.scala
+++ b/finagle/finagle-core/src/main/scala/com/twitter/finagle/client/DefaultClient.scala
@@ -169,7 +169,7 @@ case class DefaultClient[Req, Rep](
// or at least Var[SocketAddress]
val g = Group.mutable[SocketAddress]()
val v = dest.bind()
- v observe {
+ val observation = v.observe {
case Addr.Bound(sockaddrs) =>
g() = sockaddrs
case Addr.Failed(e) =>
@@ -203,7 +203,11 @@ case class DefaultClient[Req, Rep](
val ready = v.observeUntil(_ != Addr.Pending)
val f = ready map (_ => balanced)
- new DelayedFactory(f)
+ new DelayedFactory(f) {
+ override def close(after: Duration) = {
+ Future.join(Seq(observation.close(after), super.close(after)))
+ }
+ }
}
traced compose
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment