protected fun unblockInterruptedThreads()

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 -> {}
                    }
                }
            }
        }
    }