Как Rust обрабатывает сценарий «островков изоляции» (циклов ссылок) для типов с подсчетом ссылок? - PullRequest
0 голосов
/ 28 декабря 2018

Как Rust обрабатывает сценарий «острова изоляции» для Rc с и Arc с?

«Остров изоляции» - это ситуация, когда объект A содержит указатель на объектB и объект B содержит указатель на объект A, но указателей на эти объекты нигде больше нет.

Достаточно ли умен Rust для обнаружения этого или он ведет к утечкам памяти?

1 Ответ

0 голосов
/ 28 декабря 2018

У Rust нет сборщика мусора, и он не будет определять циклы ссылок.Если ваша программа создает недоступные эталонные циклы, они просочились, и вы должны их избежать, например, используя слабые ссылки или не используя общее владение в первую очередь.

Обратите внимание, что единственный способ создать эталонный цикл - это использовать как общее владение, так и внутреннюю изменчивость.

См. Также главу по эталонным циклам в книге Rust .

...