2个不稳定版本
0.2.0 | 2019年12月28日 |
---|---|
0.1.0 | 2019年12月26日 |
#730 in 内存管理
7KB
62 行
auto-cc
当需要时,在 bacon_rajan_cc 对象上执行自动循环收集的小实用程序。
这适用于无法或难以精确控制数据结构形状的场景,以及大量循环可能在外部控制之外发生的情况,例如脚本语言实现的VM/解释器中的值。
检查和收集根的逻辑仅包含在 cc
函数中(按照惯例调用 Cc::new()
不会触发检查)。
应优先使用 Cc::new()
,用于短生命周期的代码或不太可能创建循环的代码。
请注意,循环是在分配新的 Cc<T>
之前收集的,因此即使不可信的代码执行完毕后,仍然可能存在已死亡的循环,因此建议从 bacon_rajan_cc
包中手动调用 collect_cycles
函数以执行最终清理。
基本示例
extern crate auto_cc;
use auto_cc::{
cc,
bacon_rajan_cc::{
Cc,
collect_cycles, // for final cleanup, when necessary
}
};
fn main() {
let _x: Cc<u8> = cc( 0 );
}
依赖关系
~73KB