List<M>, func: () -> Unit = {}) {
addJob = launch(Default) {
withLock {
add(list)
func.invoke()
}
}
}
Внутри этого add вызываю isActive, если false, то заканчиваю добавлять.
Предположим, что эта функция вызывается много раз по каким-то причинам, получается, первая возьмет lock, остальные будут ждать. И предположим они еще не успели отработать, и нам надо все это разов завершить, потому что больше не нужно. Получается достаточно у скоупа вызвать cancel?
Да.
А мне же все равно тогда внутрии add сразу надо проверять тогда статус работы?
Обсуждают сегодня