Rc, я её (ну или не её, а указатель на неё, например) вообще никак не смогу передать в другой поток? (Чтобы данные из этой структуры можно было прочитать (данные под Rc))
Насколько я понимаю, если даже доставать данные из мьютекса, то их надо будет всё равно переместить в другой поток, что сломает Rc (и поэтому он не Send), но я могу ошибаться
Есть SendWrapper @wafflelapkin
если нужно передавать Rc в другой поток, то имеет смысл просто азять Arc если структура не твоя, то печально
есть разные способы с этим работать (например, lib.rs/diplomatic-bag), но они все неприятные
Спасибо, но, похоже, произошло недопонимание. > as long as you access the contained value only from within the original thread Мне нужно читать из другого потока тоже. Допустим, что чтец всегда только один, а содержимое Rc лежит где-то в куче. Для данного случая, я думаю, что-то бы сделали, если бы это было безопасно. Хотел уж спросить, почему нельзя передавать Rc по потокам, но опомнился - пойду гуглить
Потому что параллельный дроп rc счётчик сломает
Структура, к счастью, моя. Спасибо за библиотеку, посмотрю (но использовать не буду, а поменяю Rc на Arc)
Интересное решение
Ну если поток не меняет данные и структура хранит не сильно много данных (не гигабайты), то можно просто клонировать и передать )
А если, допустим, мне падает структура из какой-то библиотеки, а там `Rc`, то, если так подумать, возможно же сунуть структуру под мьютекс и передавать из потока в поток. В моём представлении ничего сломаться не должно. В реальности точно что-то должно, а что - не понимаю Понял, почему Rc вообще никак отправить не удастся - даже если сунуть структуру под мьютекс, можно будет нагло склонировать себе одну Rc-шку в вызывающий поток, она дропнется, а вызываемый поток может тоже дропнуть эту Rc-шку в то же время ...если я не ошибаюсь
Обсуждают сегодня