Size: a a a

2020 December 03

MB

Mikail Bagishov in Rust Async
источник

MB

Mikail Bagishov in Rust Async
Anton
Насчёт синхронного контекста проверю, но мне кажется ты путаешь со spawn_blocking
И spawn и spawn_blocking могут вызываться как из синхронного, так и асинхронного кода. Нужно лишь, чтобы был доступен контекст токио.
источник

MB

Mikail Bagishov in Rust Async
Собственно тут мы делаем spawn из синхронного кода
источник

A

Anton in Rust Async
Mikail Bagishov
Похоже это баг в токио
Думаю никакого бага, поскольку я не создаю треды, мне и не нужно парится отконтексте, а токио их сам мпавнит, и сам готовит контекст, чтобы футурки пахали
источник

MB

Mikail Bagishov in Rust Async
Не, бага в токио точно нет, это я сначала не так enter() делал
источник

A

Anton in Rust Async
Mikail Bagishov
tokio::spawn тоже работает в синхронном контексте
Значит block_on просто выкину
источник

MB

Mikail Bagishov in Rust Async
Ну да, этого должно быть достаточно
источник

d

diabolo in Rust Async
Mikail Bagishov
tokio::spawn работает синхронно, нет нужды в block_on.
спаун уходит в один из тредов, он по факту не может работать синхронно
источник

d

diabolo in Rust Async
Anton
У токио контекст глобальный, но спавнидолден быть в асинке
токио в отличии от async-std не имеет глобального контекста
источник

A

Anton in Rust Async
diabolo
токио в отличии от async-std не имеет глобального контекста
Пробовал два Токио рантайма запустить?
источник

A

Anton in Rust Async
diabolo
спаун уходит в один из тредов, он по факту не может работать синхронно
Там вобще речь про другое
источник
2020 December 04

ph

pl 🦑 hk in Rust Async
Anton
Пробовал два Токио рантайма запустить?
actix
источник

MB

Mikail Bagishov in Rust Async
А еще tokio-compat-0.2.
Рантаймы можно спавнить в любом количестве до тех пор, пока они живут в разных потоках.
источник

A

Anton in Rust Async
Имел ввиду в одном потоке
источник

A

Anton in Rust Async
Помнится запускал посгрес, и request blocking, которые создают рантайм внутри себя, было весело
источник

MB

Mikail Bagishov in Rust Async
Да, так нельзя.
источник

MB

Mikail Bagishov in Rust Async
Формально, в каждом потоке там должно быть что-то типа стека, в котором чередуются синхронный и асинхронный контексты
источник

MB

Mikail Bagishov in Rust Async
Например, НЯП, можно сделать block_in_place и внутри сделать block_on другого рантайма, и это будет работать
источник

d

diabolo in Rust Async
Anton
Пробовал два Токио рантайма запустить?
да, отлично запускаются
источник

d

diabolo in Rust Async
Anton
Имел ввиду в одном потоке
что значит в одном потоке?
источник