help with weak references
[email protected] Mon, 4 Jan 2016 03:02:27 -0800 (PST)
| Newsgroups | gmane.comp.lang.scala |
|---|---|
| Message-ID | <[email protected]> |
Weak references don't seem to be eagerly collected as the following script
illustrates. Why?
---------------------
Welcome to Scala version 2.11.4 (Java HotSpot(TM) 64-Bit Server VM, Java
1.8.0_60).
Type in expressions to have them evaluated.
Type :help for more information.
scala> import scala.ref.WeakReference
import scala.ref.WeakReference
scala> val rq = new scala.ref.ReferenceQueue[List[Int]]
rq: scala.ref.ReferenceQueue[List[Int]] =
java.lang.ref.ReferenceQueue@ba2f4ec
scala> case class WR(a: List[Int]) { val wr = new WeakReference(a, rq)}
defined class WR
scala> val wr = WR((0 until 5).toList)
wr: WR = WR(List(0, 1, 2, 3, 4))
scala> val x = wr.wr.get
x: Option[List[Int]] = Some(List(0, 1, 2, 3, 4))
scala> val x = 3 // re-define x
x: Int = 3
scala> System.gc()
scala> val x = wr.wr.get
x: Option[List[Int]] = Some(List(0, 1, 2, 3, 4)) // <<------ should have
been None
scala>
--
You received this message because you are subscribed to the Google Groups "scala-language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
For more options, visit https://groups.google.com/d/optout.