Size: a a a

Kotlin Community

2020 August 17

K

Kirill in Kotlin Community
Andrey Kuleshov
Сейчас да, к сожалению. А если через мавен использовать - то через супер pom. Но мы правда все добавим, если будет желание и возможность, а пока кормим завтраками и выпрашиваем звездочки, чтобы привлечь к нам разработчиков: https://github.com/cqfn/diKTat

Будем рады, если поддержите :)
Ок, спс )
источник

AN

Alexander Nozik in Kotlin Community
Вот есть у меня канал. Может ли кто-нибудь придумать простой способ, как за суспендиться пока канал не пуст? Я вижу один довольно громоздкий метод с селектами, но может просмотрел чего простой.
источник

AE

Alexandr Emelyanov in Kotlin Community
Alexander Nozik
Вот есть у меня канал. Может ли кто-нибудь придумать простой способ, как за суспендиться пока канал не пуст? Я вижу один довольно громоздкий метод с селектами, но может просмотрел чего простой.
надо выполнить что то когда данные в канале закончатся?
источник

AN

Alexander Nozik in Kotlin Community
Alexandr Emelyanov
надо выполнить что то когда данные в канале закончатся?
Да. Он бесконечный, но идея в том, чтобы подождать, пока все уже оправилось и отправить сообщение отедльно
источник

AE

Alexandr Emelyanov in Kotlin Community
Alexander Nozik
Да. Он бесконечный, но идея в том, чтобы подождать, пока все уже оправилось и отправить сообщение отедльно
а когда все отправлено - канал продолжает жить?
источник

АО

Алексей Овсянников... in Kotlin Community
Делать receiveOrNull (хотя я точно не помню, как оно называется), а после - вызывать то, что должно произойти по пустому каналу
источник

AN

Alexander Nozik in Kotlin Community
Alexandr Emelyanov
а когда все отправлено - канал продолжает жить?
да. Если бы он закрывался, вопроса бы не было
источник

АО

Алексей Овсянников... in Kotlin Community
Там у них аналоги а-ля send/offer, receive/забыл
источник

AN

Alexander Nozik in Kotlin Community
Алексей Овсянников
Делать receiveOrNull (хотя я точно не помню, как оно называется), а после - вызывать то, что должно произойти по пустому каналу
Не, тут надо неинвазивно. Вообще какая-то нескладушка, видимо надо по-другому проектировать.
источник

АО

Алексей Овсянников... in Kotlin Community
А там не было коллбэков на ресив?
источник

AN

Alexander Nozik in Kotlin Community
Алексей Овсянников
А там не было коллбэков на ресив?
Там есть SelectClause
источник

AN

Alexander Nozik in Kotlin Community
Поэтому через селекты можно
источник

АО

Алексей Овсянников... in Kotlin Community
Понял
источник

BV

Boris Vanin in Kotlin Community
Alexander Nozik
Не, тут надо неинвазивно. Вообще какая-то нескладушка, видимо надо по-другому проектировать.
А чо, вроде норм решение, сделать обёртку, которая будет просто канал на эмпти перед тем как будет ресив вызывать, вообще изи
источник

BV

Boris Vanin in Kotlin Community
Или после рессива 🤷‍♂
источник

AE

Alexandr Emelyanov in Kotlin Community
мне кажется окончание пересылки и вставка спец сообщения должна определяться на передающей стороне, принимающая может ошибочно понять что канал пуст (на той стороне не успели записать)
источник

AN

Alexander Nozik in Kotlin Community
Boris Vanin
А чо, вроде норм решение, сделать обёртку, которая будет просто канал на эмпти перед тем как будет ресив вызывать, вообще изи
Ну да, так можно. Но чего-то мне не нравится, как выглядит. Сделаю вообще изолирующую оболочку. Тут задача такая: есть порт, в который могут отправляться и из которого получаться данные. Обычно все идет асинхронно, но с некоторыми приборами надо общаться синхронно. Для этого надо проверить, что нет неотправленных сообщений. Но я подумал, что один порт никогда не будет использоваться одновременно и в синхронном и в асинхронном режиме.
источник

AE

Alexandr Emelyanov in Kotlin Community
я бы сделал некое подобие протокола, управляющий пакет, который говорит о том, что текущая пересылка закончена
источник

AN

Alexander Nozik in Kotlin Community
Alexandr Emelyanov
я бы сделал некое подобие протокола, управляющий пакет, который говорит о том, что текущая пересылка закончена
В протокол я не могу вмешиваться, он определяется прибором
источник

BV

Boris Vanin in Kotlin Community
А, ну это вроде тогда не дело канала 🤔
источник