From 4007910927bf494c917ac1ffcbf8b73783541247 Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Thu, 26 May 2016 22:47:10 +0200 Subject: Fix deadlock in t5375 and similar tests. See t5375.scala for details. --- tests/run/t5375.scala | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'tests') diff --git a/tests/run/t5375.scala b/tests/run/t5375.scala index 8c2c06fde..d8413c1a3 100644 --- a/tests/run/t5375.scala +++ b/tests/run/t5375.scala @@ -1,3 +1,14 @@ +/** Hello fellow compiler developer. + if you are wondering why does test suite hang on this test + then it's likely that the lambda inside map has been compiled into static method + unfotrunatelly, as it is executed inside static object initializer, + it is executed inside class-loader, in a synchronized block that is not source defined. + + If the lambda will be static Test$#foo, calling it through a different thread would require grabbing the + lock inside classloader. Unlike if it not static and is called through This(Test).foo, no lock is grabbed. + + @DarkDimius +*/ object Test extends dotty.runtime.LegacyApp { val foos = (1 to 1000).toSeq try -- cgit v1.2.3