Skip to content

Commit 0c41132

Browse files
authored
Add test for solved deadlock situation (#33)
1 parent 7f9850c commit 0c41132

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

core/src/test/scala/scala/scalanative/loop/TimerTests.scala

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package scala.scalanative.loop
33
import utest._
44
import scala.concurrent.duration._
55
import scala.concurrent.ExecutionContext.Implicits.global
6-
import scala.concurrent.Promise
6+
import scala.concurrent.{Future, Promise}
77

88
object TimerTests extends LoopTestSuite {
99
val tests = Tests {
@@ -64,5 +64,12 @@ object TimerTests extends LoopTestSuite {
6464
}
6565
p.future
6666
}
67+
test("deadlock when futures need event loop run to unlock") {
68+
var completed = false
69+
def recursive(): Future[Unit] = if (!completed) Future(recursive()) else Future.successful(())
70+
val r = recursive()
71+
Timer.timeout(10.millis)(() => completed = true)
72+
r
73+
}
6774
}
6875
}

0 commit comments

Comments
 (0)