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

Ну вот а попробовать написать что-то маленькое чтобы понять как

оно рабоатет? :) я вот на память не помню, сел написал чтобы не соврать

8 ответов

15 просмотров

Я ж сказал, завтра попробую точно, а сейчас просто привёл ту фразу, что читал до этого. Тогда в каком случае полетит исключение, если будет ждать вечно? Странно

Оказывается, first{} - это первое, что я попробовал вчера. Итог был как в описанном мною первом посте - после emit() функция suspend'ится. Почему - неясно. Причём, если постить одну задачу, возвращается один ответ и функция не suspend'ится. А если сразу параллельно накидать несколько задач, то функция приостанавливается на emit(). Накидал пример, с помощью которого можно повторить у себя и получить такой же результат. Если в примере в цикле for указать вместо 100 всего лишь 1 проход, то программа завершится успешно. Если же много проходов, то зависнет. Такие дела. Также прикладываю к посту логи для одного повтора и для 100 чуть ниже.

X
Оказывается, first{} - это первое, что я попробова...

Правильно я понимаю, что это вы SharedFlow мучаете? Так вот, у его Mutable-версии есть аж три параметра, о которых вам надо знать. С первым все более-менее понятно, а насчёт второго и третьего сейчас мануал один кину.

X
Да, с sharedflow

https://itnext.io/mutablesharedflow-is-kind-of-complicated-61af68011eae Выше вам по делу подсказали, но мануал гляньте, чтобы понять поведение SharedFlow

Viktor
https://itnext.io/mutablesharedflow-is-kind-of-com...

Спасибо за ссылку, интересное чтиво. Там примерно описывается моя проблема. Но вот один нюанс не даёт мне покоя. Когда я делаю emit(), то много подписчиков ждут своё сообщение через вызов first{}. First под капотом вызывает collectWhile, который в свою очередь вызывает collect только в том случае, если first вернул true. Когда у нас 100 подписчиков, вытаскивающих один элемент из потока, весь поток стопорится. Что как бы абсурдно, ведь, тогда вся система рано (при extraBufferCapacity=0) или поздно (при большом extraBufferCapacity) приостановится.

X
Спасибо за ссылку, интересное чтиво. Там примерно ...

Изменение политики onBufferOverflow не решает проблему? Там по-умолчанию саспенд, но можно дропать старые или новые при переполнении буфера.

Viktor
Изменение политики onBufferOverflow не решает проб...

Нельзя так делать, мне ж нельзя терять запросы на решения задач

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

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

Мужики и девушки, привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных...
Kraszx
14
Добрый вечер. Есть вопрос, а может и предложение. Был у меня диалог в другой группе о делфи и я задался вопросом: "А нельзя ли в делфи цвет //коментария и {комментария} сде...
Kraszx
24
Всем привет! Подскажи, пожалуйста, как передать в TComboBox сразу значение и id записи. На Delphi я делал так: ComboBox1.Items.AddObject('Какое-то значение', Pointer(id запис...
Евгений
13
А вот это что за конструкция? Вернее, она тут нафига?
Serjone
10
Мдя, прикол, боевая сборка запускается (именно под отладчиком) после F9 примерно полторы минуты (97 секунд если быть точным). Начал копать - проблема детектится сразу - зависа...
Александр (Rouse_) Багель
38
Мужики. привет) в Вelphi xe7 в настройках во вкладке "Editor Options" далее " Color" есть список: "Elements", открыв который мы можем настраивать отображение разных элементов...
Kraszx
2
Здравствуйте, вопрос по структурам данных. Были у вас случаи, когда пришлось писать деревья или двунаправленные списки?
/ /
50
Товарищи, кто работа с iphelper? Или может я в самой логике ошибки фигачу, не пойму.... var ifTable : PMIB_IFTABLE; size, corSize: DWORD; Buffer ...
Warfarellen
4
я так понимаю, я так подозреваю, что создание такого плагина для человека, кто умеет писать плагины для делфи потребует минут 5-10 времени. но это мое подозрение. хотелось бы ...
Kraszx
7
Всем привет! Кто пользуется DevExpress, подскажите пожалуйста, реализован ли в TcxGrid в новых версиях поиск по датам как в Экселе (ну т.е. не просто список чекбоксов со значе...
A Z
4
Карта сайта