rust使用:Arc new_cyclic 构建自身的弱引用指针
Arc new_cyclic 构建自身的弱引用指针
创建一个新的Arc<T>
,同时为你提供对分配的Weak<T>
,以便你构建一个持有对自身弱指针的T
。
通常,直接或间接循环引用自身的结构不应持有对自身的强引用,以防止内存泄漏。使用此函数,你可以在T
初始化期间(在Arc<T>
创建之前)访问弱指针,以便你可以克隆并将其存储在T
内部。
创建一个新的Arc<T>
,同时为你提供对分配的Weak<T>
,以便你构建一个持有对自身弱指针的T
。
通常,直接或间接循环引用自身的结构不应持有对自身的强引用,以防止内存泄漏。使用此函数,你可以在T
初始化期间(在Arc<T>
创建之前)访问弱指针,以便你可以克隆并将其存储在T
内部。
使用aya支持CO-RE(编译一次,在不同版本的内核上运行程序)。aya 库(用户空间侧)可以用来加载有 relocations 的 BPF 程序,但用 Rust 语言编写 BPF 程序的 aya-ebpf 库(内核侧)。所以如果无法避免 relocations 等问题时,就需要结合c写内核,rust写用户空间加载。(比如:还不支持 relocations 相关的 bpf_core_read 或编译器的 __builtin_preserve_access_index 函数)。参考