diff options
author | Jason Zaugg <jzaugg@gmail.com> | 2015-01-29 10:23:06 +1000 |
---|---|---|
committer | Jason Zaugg <jzaugg@gmail.com> | 2015-01-29 10:23:06 +1000 |
commit | 09f92d2b74badcdd989e9f17e60344e63b5483cf (patch) | |
tree | bc991e16497412c0c5ca291124ea9d27eb7e6069 /test/disabled/run | |
parent | af3881623cde655b37af77edb46b9e8c1b46b067 (diff) | |
parent | 7ba38a07916426314cc3bff6999f3992757e0b26 (diff) | |
download | scala-09f92d2b74badcdd989e9f17e60344e63b5483cf.tar.gz scala-09f92d2b74badcdd989e9f17e60344e63b5483cf.tar.bz2 scala-09f92d2b74badcdd989e9f17e60344e63b5483cf.zip |
Merge commit '7ba38a0' into merge/2.11.x-to-2.12.x-20150129
Conflicts:
build.number
src/compiler/scala/tools/nsc/transform/ExtensionMethods.scala
src/library/scala/collection/Iterator.scala
versions.properties
Diffstat (limited to 'test/disabled/run')
-rw-r--r-- | test/disabled/run/t8946.scala | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/test/disabled/run/t8946.scala b/test/disabled/run/t8946.scala new file mode 100644 index 0000000000..a248a20501 --- /dev/null +++ b/test/disabled/run/t8946.scala @@ -0,0 +1,29 @@ +// Tests to assert that references to threads are not strongly held when scala-reflection is used inside of them. +object Test { + import scala.ref.WeakReference + + def forceGc() = { + var obj = new Object + val ref = new WeakReference(obj) + obj = null; + while(ref.get.nonEmpty) + Array.ofDim[Byte](16 * 1024 * 1024) + } + + def main(args: Array[String]): Unit = { + val threads = for (i <- (1 to 16)) yield { + val t = new Thread { + override def run(): Unit = { + import reflect.runtime.universe._ + typeOf[List[String]] <:< typeOf[Seq[_]] + } + } + t.start() + t.join() + WeakReference(t) + } + forceGc() + val nonGCdThreads = threads.filter(_.get.nonEmpty).length + assert(nonGCdThreads == 0, s"${nonGCdThreads} threads were retained; expected 0.") + } +} |