Forbid suspension points in critical sections

#KT-26480: Fixed
This commit is contained in:
Ilmir Usmanov
2018-09-11 21:29:36 +03:00
parent a4b2e5964a
commit 2dd5b8fa70
11 changed files with 186 additions and 3 deletions
@@ -0,0 +1,22 @@
fun builder(c: suspend () -> Unit) {}
private val lock = Any()
suspend fun suspensionPoint() {}
fun test() {
builder {
synchronized(lock) {
suspensionPoint()
}
inlineMe {
suspensionPoint()
}
monitorInFinally(
{ suspensionPoint() },
{ suspensionPoint() }
)
}
}