Size: a a a

2020 July 12

KR

Kai Ren in Rust Async
Alex Ilizarov
Ты проверял? Ну хоть мою ссылку глянь
Я её читал, да.

Вывод "проще не юзать блокирующие примитивы синхронизации в асинке" для себя не делал из этого.

То, что в tokio::sync::RwLock допилили fairness, не был в курсе. Круто, спасибо.
источник

AI

Alex Ilizarov in Rust Async
Kai Ren
Я её читал, да.

Вывод "проще не юзать блокирующие примитивы синхронизации в асинке" для себя не делал из этого.

То, что в tokio::sync::RwLock допилили fairness, не был в курсе. Круто, спасибо.
Лол зачем юзать блокирующие в асинке?
источник

AI

Alex Ilizarov in Rust Async
Чтобы постоянно думать о возможностях блокировки?
источник

KR

Kai Ren in Rust Async
Alex Ilizarov
Чтобы постоянно думать о возможностях блокировки?
Не вытягивай гварды в публичное АПИ и не прийдётся думать.
источник

AI

Alex Ilizarov in Rust Async
Kai Ren
Не вытягивай гварды в публичное АПИ и не прийдётся думать.
Лол я в актиксе лочился
источник

AI

Alex Ilizarov in Rust Async
Причем пока ab не прогнал дедлоки не ловил
источник

AI

Alex Ilizarov in Rust Async
Ну и зачем эти приколы нужны?
источник

AI

Alex Ilizarov in Rust Async
Блокирующие синхронизаторы для синхронного кода
источник

AI

Alex Ilizarov in Rust Async
Асинхронные для асинхронного
источник

KR

Kai Ren in Rust Async
Alex Ilizarov
Блокирующие синхронизаторы для синхронного кода
Future::poll - это вполне себе синхронный код.
источник

AI

Alex Ilizarov in Rust Async
Kai Ren
Future::poll - это вполне себе синхронный код.
Это деталь реализации
источник

IL

Ilya Lakhin in Rust Async
Не, по-моему это ерунда какая-то. Ребят, мне нравится идея futures-signals. Изучение этой библиотеки навело меня на мысль, как мне лучше организовать мой собственной код, так что ваш совет мне безусловно помог. Но саму библиотеку я бы юзать для своих целей пока не стал. Мне кажется, что автор делал этот фреймворк с прицелом на то, что Mutable будет сидеть в синхронном main-thread, в котором, грубо говоря, winit хендлер крутится, и просто сохранять туда события в каком-то виде, а сигналы будут раздаваться уже в Futures среду, в какой-нибудь Tokio экзекьютор. В этом смысле подход вполне разумный, но это API совершенно не общего назначения, как позиционируется в библиотеке: потенциально блокирующие poll сигналов — не есть гут; Mutable, потенциально блокирующие фьючеры — тоже не есть гут. Ну и, кроме того, сам интерфейс Signal из-под капота использует врапперы над обычными стримами из Futures. По сути в сухом остатке мы просто имеем интерфейсную обертку над стримами из Фьючеров, и std RwLock.
источник

IL

Ilya Lakhin in Rust Async
Я просто ожидал, что оно там как-то более умно сделано изнутри, а там по сути под капотом просто обычный враппер, причем над не очень совместимыми вещами
источник

d

diabolo in Rust Async
Ilya Lakhin
Я просто ожидал, что оно там как-то более умно сделано изнутри, а там по сути под капотом просто обычный враппер, причем над не очень совместимыми вещами
я думал ты эту либу и воспримешь как информацию к размышлению
источник

IL

Ilya Lakhin in Rust Async
Но концепция безусловно хорошая.
источник

IL

Ilya Lakhin in Rust Async
Что-то такое безусловно надо сделать, может быть только немного поаккуратнее. Не уверен, что я за такое сейчас могу взяться, но буду иметь ввиду
источник

IL

Ilya Lakhin in Rust Async
Думаю, более правильно такое можно было бы сделать используя токиовский RwLock действительно, а в сигнал передавая значения через watch канал. Сигнал ведь по сути не хранит состояние
источник

d

diabolo in Rust Async
Ilya Lakhin
Думаю, более правильно такое можно было бы сделать используя токиовский RwLock действительно, а в сигнал передавая значения через watch канал. Сигнал ведь по сути не хранит состояние
угу, и как стендовое решение можно взять код и подправить его)
источник

d

diabolo in Rust Async
хотя я понимаю, что нет ничего более постоянного, чем временное 😉
источник
2020 July 13

В

Вафель in Rust Async
А есть какой-то красивый способ получить последний элемент из стрима?

Что-нибудь лучше чем
let mut last = None;
while let next @ Some(_) = lines.next().await { last = next }
источник