Size: a a a

2020 November 23

ph

pl 🦑 hk in Rust Async
как-то так видимо (не проверял)
источник

KR

Kai Ren in Rust Async
pl 🦑 hk
как-то так видимо (не проверял)
+
источник

AZ

Alexander Zaitsev in Rust Async
pl 🦑 hk
impl Handler<Ping> for MyActor {
   type Result = ResponseActFuture<Self, Result<bool, std::io::Error>>;

   fn handle(&mut self, msg: Ping, ctx: &mut Context<Self>) -> Self::Result {
       println!("Ping received");
       let f = actix::fut::wrap_future::<_, Self>(async move {
           connect("url").await;
           Ok(true)
       });
       Box::pin(f)
   }
}
во, примерно это я и искал. спасибо
источник

D

Denis in Rust Async
потёр срачик, давайте более конструктивно плз
источник

АГ

Алексей Герасимов... in Rust Async
pl 🦑 hk
impl Handler<Ping> for MyActor {
   type Result = ResponseActFuture<Self, Result<bool, std::io::Error>>;

   fn handle(&mut self, msg: Ping, ctx: &mut Context<Self>) -> Self::Result {
       println!("Ping received");
       let f = actix::fut::wrap_future::<_, Self>(async move {
           connect("url").await;
           Ok(true)
       });
       Box::pin(f)
   }
}
да, это работает. до тех пор, пока внутри не понадобится стейт актора. собственно в этом вся загвоздка, что внутри обычных футур актор недоступен. а внутри ActorFuture не работает await)
источник

d

diabolo in Rust Async
Алексей Герасимов
да, это работает. до тех пор, пока внутри не понадобится стейт актора. собственно в этом вся загвоздка, что внутри обычных футур актор недоступен. а внутри ActorFuture не работает await)
угу
источник

d

diabolo in Rust Async
делаем?
источник

ph

pl 🦑 hk in Rust Async
Алексей Герасимов
да, это работает. до тех пор, пока внутри не понадобится стейт актора. собственно в этом вся загвоздка, что внутри обычных футур актор недоступен. а внутри ActorFuture не работает await)
через map можно закостылить 🤷‍♀️
источник

d

diabolo in Rust Async
pl 🦑 hk
через map можно закостылить 🤷‍♀️
ключевое слово "закостылить" 🙃
источник

АГ

Алексей Герасимов... in Rust Async
https://github.com/Diggsey/actix-interop
еще вот такой костыль есть, через thread-local
источник

d

diabolo in Rust Async
fixed
источник

d

diabolo in Rust Async
сразу говорю, пока не смотрел, я только что из под капота своей машины вылез, еле проблему нашёл, мне ща не до компа, я замёрз как не знаю кто, но я её починил
источник
2020 November 24

A

Anton in Rust Async
Кто нить знает какой нить мануал как искать дедлоки?)
источник

K

Kitsu in Rust Async
Anton
Кто нить знает какой нить мануал как искать дедлоки?)
gdb + thread apply all bt
источник

AZ

Alexander Zaitsev in Rust Async
Kitsu
gdb + thread apply all bt
помню как-то раз таким образом дебажил программу на 15к+ потоков :)
источник

A

Anton in Rust Async
Kitsu
gdb + thread apply all bt
Геморойненько, с учетом того что для блокирущих тасков токио динамически создает треды
источник

K

Kitsu in Rust Async
Anton
Геморойненько, с учетом того что для блокирущих тасков токио динамически создает треды
не уверен, но мне казалось что токио не создает треды динамически, не?
можно однотредовый рантайм заюзать
источник

AZ

Alexander Zaitsev in Rust Async
Kitsu
не уверен, но мне казалось что токио не создает треды динамически, не?
можно однотредовый рантайм заюзать
спавнит, если spawn_blocking
источник

A

Anton in Rust Async
да я примерно знаю кусок - есть у меня канал для записи логов, если его сделать размером допустим "100" - все работает ок, но логи пишутся с большой задержкой, даже когда рантайм свободен - он с очередь канала никуя не пулит, начинает только если есть обращения по сети, если канал сделать размером "2" логи пытается писать сразу, и порой лочит как я понимаю воркера
источник

A

Anton in Rust Async
Kitsu
не уверен, но мне казалось что токио не создает треды динамически, не?
можно однотредовый рантайм заюзать
мне не пойдет, динамически как отметили -  у меня  блоки через spwan_blocking запускаются
источник