LINUX.ORG.RU

История изменений

Исправление KivApple, (текущая версия) :

Тут нет блокировки самого элемента для дальнейшей работы после разблокировки HashMap. Вероятно, у тебя элементы иммутабельные, а я хочу мутабельные.

Если просто заменить в моём коде Box на Arc и клонировать его перед созданием ItemRef, ошибка никуда не исчезает. Сохранить Arc внутрь структуры (чтобы Rust понимал, что объект точно будет жить, пока жив ItemRef) я не могу, потому что после блокировки Mutex элемента, Arc, в котором он лежит, становится borrowed и его уже нельзя положить в конструируемый ItemRef.

Исправление KivApple, :

Тут нет блокировки самого элемента для дальнейшей работы после разблокировки HashMap.

Если просто заменить в моём коде Box на Arc и клонировать его перед созданием ItemRef, ошибка никуда не исчезает. Сохранить Arc внутрь структуры (чтобы Rust понимал, что объект точно будет жить, пока жив ItemRef) я не могу, потому что после блокировки Mutex элемента, Arc, в котором он лежит, становится borrowed и его уже нельзя положить в конструируемый ItemRef.

Исходная версия KivApple, :

Тут нет блокировки самого элемента для дальнейшей работы после разблокировки HashMap.

Если просто заменить Box на Arc и клонировать его перед созданием ItemRef, ошибка никуда не исчезает. Сохранить Arc внутрь структуры (чтобы Rust понимал, что объект точно будет жить, пока жив ItemRef) я не могу, потому что после блокировки Mutex элемента, Arc, в котором он лежит, становится borrowed и его уже нельзя положить в конструируемый ItemRef.