in src/jvm/main/org/jetbrains/kotlinx/lincheck/strategy/managed/ManagedStrategy.kt [614:632]
protected fun unblockInterruptedThreads() {
for ((threadId, thread) in getRegisteredThreads()) {
if (threadScheduler.isBlocked(threadId) && thread.isInterrupted) {
val blockingReason = threadScheduler.getBlockingReason(threadId)
if (blockingReason != null && blockingReason.isInterruptible()) {
threadScheduler.unblockThread(threadId)
when (blockingReason) {
is BlockingReason.Parked -> {
parkingTracker.interruptPark(threadId)
}
is BlockingReason.Waiting -> {
monitorTracker.interruptWait(threadId)
}
else -> {}
}
}
}
}
}