Size: a a a

2020 June 09

e

egoarka in Rust Async
нет, блокирующий код fs не нужен
возьму в этом случает из токио что то для fs

а клиент/драйвер для бд тоже неблокирующий, тоже на токио
источник

AI

Alex Ilizarov in Rust Async
egoarka
нет, блокирующий код fs не нужен
возьму в этом случает из токио что то для fs

а клиент/драйвер для бд тоже неблокирующий, тоже на токио
тогда вообще проблем нет
источник

AI

Alex Ilizarov in Rust Async
если оно точно внутри себя нигде ничего не блочит
источник

e

egoarka in Rust Async
egoarka
а какой веб сервер брать для кода на токио? или это без разницы?
получается любой такой веб сервер, который тоже использует у себя токио? (другие веб сервера я не тестил с кодом токио, поэтому тоже интересно что там будет)
ну а актикс как ты говоришь получается автоматом попадает в этот список, так как оно внутри токио гоняет
-
что спрашиваю, я просто компилил бездумно и оно работало, правда может тонкости где нибудь есть и оно там наслаивается ( где-то футуру лишнюю спавнит, где то тредпул юзает бездумно и тп и в итоге какой то оверхед)
источник

AI

Alex Ilizarov in Rust Async
Если твои внешние зависимости не дергают какой нибудь tokio::block_on то все будет хорошо
источник

AI

Alex Ilizarov in Rust Async
Зависимости не должны блочить текущий поток
источник

AI

Alex Ilizarov in Rust Async
Я очень забавные эффекты ловил когда в актиксе пытался синхронный мьютекс использовать
источник

e

egoarka in Rust Async
например?
источник

AI

Alex Ilizarov in Rust Async
Поэтому ни твои зависимости ни ты не должны блочиться
источник

AI

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

AI

Alex Ilizarov in Rust Async
И это ловилось только когда я натравливал ab бенч
источник

AI

Alex Ilizarov in Rust Async
Поэтому главное чтобы твои завистмости и ты сам не блочили текущий поток. Есть web::block или асинхронные мьютексы (лучше конечно без них)
источник

e

egoarka in Rust Async
>лучше конечно без них
даже без асинк мьютексов? почему?
они вроде как не должны доставлять проблем (по крайней мере я бы перестраховался и использовал бы их в своем коде)
источник

AI

Alex Ilizarov in Rust Async
egoarka
>лучше конечно без них
даже без асинк мьютексов? почему?
они вроде как не должны доставлять проблем (по крайней мере я бы перестраховался и использовал бы их в своем коде)
Они доставляют проблем если ты где то в логике ошибся или могут кардинально снизить перфоманс потому что твои 999 корутин ждут одну
источник

e

egoarka in Rust Async
Alex Ilizarov
Они доставляют проблем если ты где то в логике ошибся или могут кардинально снизить перфоманс потому что твои 999 корутин ждут одну
хорошо

тогда получается что можно  оборачивать асинхронный кусок кода в синхронный мьютекс?
а как же дедлоки и эти страшилки
источник

AI

Alex Ilizarov in Rust Async
egoarka
хорошо

тогда получается что можно  оборачивать асинхронный кусок кода в синхронный мьютекс?
а как же дедлоки и эти страшилки
Я вроде явно сказал что я ловил зависшие намертво процессы при синхронном мьютексе
источник

AI

Alex Ilizarov in Rust Async
Так что при выборе между синхронным и асинхронным лучше асинхронный в токио коде
источник

e

egoarka in Rust Async
Alex Ilizarov
Я вроде явно сказал что я ловил зависшие намертво процессы при синхронном мьютексе
так там было упоминание о блокирующих вызовах

я говорю про чистый асинхронный код
источник

AI

Alex Ilizarov in Rust Async
egoarka
так там было упоминание о блокирующих вызовах

я говорю про чистый асинхронный код
Можешь перефразировать вопрос?
источник

e

egoarka in Rust Async
egoarka
хорошо

тогда получается что можно  оборачивать асинхронный кусок кода в синхронный мьютекс?
а как же дедлоки и эти страшилки
вот же
источник