Здравствуйте, ArtDenis, Вы писали:
AD>Здравствуйте, johny5, Вы писали:
J>>Какие ещё "умные указатели" в Расте есть, возможно даже нестандартные?
AD>Без всяких умных укахателей ты можешь мувать объекты в поток, если они не содержат полей, которые явно запрещены для Send.
Упс, забыл про один аспект, что данные должны быть shared, RefCell<> отлично туда подходил.
И пока писал, понял свою ошибку. Компилятор не может знать что все копии Arc находятся в одном потоке, и потому он требует от контента Sync. Думаю даже если и валяются где смарт поинтеры с таким свойством — они явно будут unsafe, потому что гарантия того, что все копии находятся в одном потоке ложится на плечи программиста.
У меня правда вот такой монстр вышел:
Arc<Mutex<RefCell<>>> — есть ли что то покороче? Структура, которая должна быть доступна из разных объектов (shared_ptr<>), и ещё перемещается в другой поток.