169 похожих чатов

Пусть есть N suspend функций, которые возвращают Boolean. Как сделать так,

чтобы они выполнились параллельно и к ним была применена операция ИЛИ?
Можно завернуть их в async и делать await для каждой, но есть минус: await будет применен по очереди к каждой функции. То есть если последняя функция выполнится быстрее остальных и вернет true, то остальные ждать бессмысленно, но реализация с await будет ждать.

11 ответов

29 просмотров

используйте List<Deferred<Boolean>>.awaitAll().any()

EvGem- Автор вопроса
Aλex Sokol
используйте List<Deferred<Boolean>>.awaitAll().any...

Awaits for completion of given deferred values without blocking a thread and resumes normally with the list of values when all deferred computations are complete or resumes with the first thrown exception if any of computations complete exceptionally including cancellation. awaitAll() ждет пока все await выполнятся. Совсем не то.

Используй мьютексы

vorobyoff
Используй мьютексы

чтобы по очереди выполнять их ?

.

Dawin York
.

Конец текста

Из коробки насколько я знаю ничего нет, но вот такое вроде работает https://pl.kotl.in/qctwz7dlH

EvGem- Автор вопроса
Vladimir Petraković
Из коробки насколько я знаю ничего нет, но вот так...

спасибо за coroutineContext.cancelChildren() у меня такая реализация получилась https://pl.kotl.in/KkyV2-q1D

EvGem
спасибо за coroutineContext.cancelChildren() у мен...

Тут отмена может не сработать, если вернувшая true функция выполнится раньше, чем закончится цикл

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта