Size: a a a

2020 August 09

MF

Max Frai in Rust Async
И, как я понимаю, его не может быть
источник

KR

Kai Ren in Rust Async
И прослойку было не сложно написать, когда писал. В паре мест заврапал футуры/стримы + tokio-compat и всё шикарно
источник

AV

A V in Rust Async
Max Frai
У нас же нет общего универсального интерфейса
интерфейс описать как раз не проблема
источник

AV

A V in Rust Async
по крайней мере, в не zero-cost стиле
источник

AV

A V in Rust Async
например,

#[async_trait]
pub trait Runtime {
   /// Runtime's TCP stream type.
   type TcpStream: AsyncRead + AsyncWrite + Unpin + Send + 'static;

   fn spawn<F: Future<Output = ()> + Send + 'static>(&self, fut: F);
   async fn sleep(&self, duration: Duration);
   async fn connect_tcp(&self, target: String) -> io::Result<Self::TcpStream>;
   async fn resolve(&self, target: String) -> io::Result<Vec<SocketAddr>>;
}
источник

KR

Kai Ren in Rust Async
источник

KR

Kai Ren in Rust Async
есть же bastion/agnostick ещё
источник

KR

Kai Ren in Rust Async
если прям хочется универсального интерфейса
источник

MF

Max Frai in Rust Async
Дай бог сил тому, кто пишет библиотеки)))
источник

KR

Kai Ren in Rust Async
но, имхо, текущая ситуация с рантаймами не напрягает
источник

KR

Kai Ren in Rust Async
пусть лучше уж довезут конст-дженерики с гатами, чтобы абстракции можно было строить покруче
источник

KR

Kai Ren in Rust Async
там мб и фундамент асинка можно сделать будет более вменяемым
источник

MB

Mikail Bagishov in Rust Async
A V
а зачем async-channel/crossbeam-channel когда есть токио?
А что там по производительности получается? Большой мьютекс на ресивере выглядит сомнительно.
источник

AV

A V in Rust Async
Mikail Bagishov
А что там по производительности получается? Большой мьютекс на ресивере выглядит сомнительно.
Если мне память не изменяет в асинкстд под капотом тоже был мутекс?
источник

MB

Mikail Bagishov in Rust Async
Ну я это не копал. Я один раз попытался написать максимально простенький mpmc и понял, что не знаю как его по-нормальному писать :)
Я столкнулся с проблемой в ситуации, когда канал пуст и туда приходит новое сообщение. Либо надо разбудить всех, кто поллил канал, но это неэффективно.
А разбудить одного недостаточно, потому что вейкер уже мог стухнуть
источник

A

Adv0cat in Rust Async
@maxfrai У меня такое чувство, что вы джун и один раз с асинхронностью работали, а разбубнелись, как вроде бы каждый день с этим сталкиваетесь 😄
источник

MF

Max Frai in Rust Async
Adv0cat
@maxfrai У меня такое чувство, что вы джун и один раз с асинхронностью работали, а разбубнелись, как вроде бы каждый день с этим сталкиваетесь 😄
Помощник джуна
источник

MF

Max Frai in Rust Async
Я говорю про проблемы языка
источник

A

Adv0cat in Rust Async
Если вы впечатлительный, не нужно читать хайповые какие-то новости, чтобы не переживать)
источник

MF

Max Frai in Rust Async
Которые есть и с которыми люди сталкиваются
источник