Size: a a a

2020 December 09

PP

Pavel Perestoronin in Rust Beginners
Хорошо, скиньте пример, где у Вас не работает с move
источник

MK

Max Kot in Rust Beginners
На какой сайт залить?
источник

MB

Mikail Bagishov in Rust Beginners
Ну этому потоку нужно передавать ресивер канала. Возможно поможет указать move у замыкания.
источник

PP

Pavel Perestoronin in Rust Beginners
источник

MK

Max Kot in Rust Beginners
Mikail Bagishov
Ну этому потоку нужно передавать ресивер канала. Возможно поможет указать move у замыкания.
Мне пишет захвачен здесь
источник

PP

Pavel Perestoronin in Rust Beginners
Max Kot
Мне пишет захвачен здесь
(там еще место указывается, где именно, поэтому информативнее будет все-таки на код посмотреть)
источник

MK

Max Kot in Rust Beginners
Сечас скину
источник

MB

Mikail Bagishov in Rust Beginners
Ну мне трудно заниматься телепатией, но видимо ты пытаешься передать ссылку на ресивер
источник

MK

Max Kot in Rust Beginners
источник

MK

Max Kot in Rust Beginners
И когда доходит время до чтение поток же ждать будет по умолчанию? Можно ли сделать что бы не ждал, а просто выполнял другие инструкции?
источник

PP

Pavel Perestoronin in Rust Beginners
желательно скинуть код, в котором нужно решить только вашу проблему (можно сделать пример проще, чем у вас, чтобы другим была яснее суть). здесь же неясно, что за self.get.connection и тд
источник

MB

Mikail Bagishov in Rust Beginners
Раз код неполный, то покажи текст ошибки компилятора
источник

PP

Pavel Perestoronin in Rust Beginners
мне кажется, что жалуется он не на reciever, а на self, вы очень ловко его на 2 потока пытаетесь разделить
источник

MK

Max Kot in Rust Beginners
Pavel Perestoronin
желательно скинуть код, в котором нужно решить только вашу проблему (можно сделать пример проще, чем у вас, чтобы другим была яснее суть). здесь же неясно, что за self.get.connection и тд
Извиняюсь, это просто хэш таблица в которой хранится структура и там только адрес пользователя
источник

MK

Max Kot in Rust Beginners
pub fn run(&mut self) {
  |                  --------- this data with an anonymous lifetime '_...
...
51 |                       thread::spawn(move || {
  |  ___________________________________^
52 | |                         self.handle(receiver);
53 | |                     });
  | |_____________________^ ...is captured here...
  |
note: ...and is required to live as long as 'static here
источник

MK

Max Kot in Rust Beginners
--> src/network/udp.rs:51:21
  |
51 |                     thread::spawn(move || {
  |                     ^^^^^^^^^^^^^

error: aborting due to previous error
источник

PP

Pavel Perestoronin in Rust Beginners
Max Kot
pub fn run(&mut self) {
  |                  --------- this data with an anonymous lifetime '_...
...
51 |                       thread::spawn(move || {
  |  ___________________________________^
52 | |                         self.handle(receiver);
53 | |                     });
  | |_____________________^ ...is captured here...
  |
note: ...and is required to live as long as 'static here
ну да, он жалуется на &mut self, а не на reciever
источник

MK

Max Kot in Rust Beginners
А как это исправляется?
источник

PP

Pavel Perestoronin in Rust Beginners
Max Kot
А как это исправляется?
почитайте про параллельность в растбуке. Проблема в том, что вы хотите передать &mut ссылку в другой поток и при этом оставив объект еще и в этом потоке. это недопустимо
источник

MB

Mikail Bagishov in Rust Beginners
Max Kot
А как это исправляется?
Если обоим  потокам нужен shared state, то его нужно завернуть во что-то типа Arc<Mutex<...>>
источник