Size: a a a

Rust — русскоговорящее сообществo

2020 April 19

T

Tema in Rust — русскоговорящее сообществo
Вафель
Странно. Может ты случайно воспользовался синхронной версией?
вот что падает на коде из офф доки

thread 'main' panicked at 'Cannot start a runtime from within a runtime. This happens because a function (like `block_on`) attempted to block the current thread while the thread is being used to drive asynchronous tasks.', /Users/tema/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.18/src/runtime/enter.rs:19:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Tema
а, вспомнил. Я его пробовал, но через async/await у меня не работало (я юзаю actix и там ошибка блокировки была)
А зачем вам в actix вообще hyper или reqwest, если там есть свои способы это сделать?)
источник

T

Tema in Rust — русскоговорящее сообществo
какие?
источник

T

Tema in Rust — русскоговорящее сообществo
я не вижу
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Tema
какие?
источник

T

Tema in Rust — русскоговорящее сообществo
та же самая ошибка. Видимо дело в чем-то другом
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Эта ошибка от того что вы запустили 2 рантайма
источник

A

Adv0cat in Rust — русскоговорящее сообществo
она может быть вообще не там, где вы думаете, попробуйте найти какая строчка конкретно вам выывает такую ошибку
источник

T

Tema in Rust — русскоговорящее сообществo
вот у меня код

impl Perform<LoginResponse> for Oper<Register> {
 #[tokio::main]
 async fn perform(&self, conn: &PgConnection) -> Result<LoginResponse, Error> {
   let data: &Register = &self.data;


и ниже я пытаюсь вызвать http запрос через все эти либы
источник

T

Tema in Rust — русскоговорящее сообществo
async изначально не было, это я добавил
источник

T

Tema in Rust — русскоговорящее сообществo
как и #[tokio::main]
источник

A

Adv0cat in Rust — русскоговорящее сообществo
а зачем вам еще один #[tokio::main] ?
источник

A

Adv0cat in Rust — русскоговорящее сообществo
или у вас это один?
источник

В

Вафель in Rust — русскоговорящее сообществo
Tema
вот что падает на коде из офф доки

thread 'main' panicked at 'Cannot start a runtime from within a runtime. This happens because a function (like `block_on`) attempted to block the current thread while the thread is being used to drive asynchronous tasks.', /Users/tema/.cargo/registry/src/github.com-1ecc6299db9ec823/tokio-0.2.18/src/runtime/enter.rs:19:5
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Хм, вообще странно. Можешь MRE сделать?
источник

T

Tema in Rust — русскоговорящее сообществo
Adv0cat
или у вас это один?
его вообще не было, я добавил. Теперь 1
источник

T

Tema in Rust — русскоговорящее сообществo
Вафель
Хм, вообще странно. Можешь MRE сделать?
что это?
источник

В

Вафель in Rust — русскоговорящее сообществo
Tema
что это?
minimal reproducible example
источник

T

Tema in Rust — русскоговорящее сообществo
Вафель
minimal reproducible example
хз как
источник

A

Adv0cat in Rust — русскоговорящее сообществo
Tema
его вообще не было, я добавил. Теперь 1
Да, попробуйте в минимальном варианте воспроизвести, у меня такое чувство, что вы вызываете несколько раз функцию perform, а #[tokio::main] по сути создает вам рантайм каждый раз при вызове этой функции
источник

T

Tema in Rust — русскоговорящее сообществo
может actix сам управляет рантаймом и не надо его трогать
источник