如何销毁 linux 内核中的一棵基数树
How to destroy one radix tree in linux kernel
我正在尝试使用基数树为驱动程序维护一个内部数据。那么摧毁整棵树的正确方法是什么?
一个想法是用下面提到的方法遍历树:1
对于每个节点,释放项目并从树中删除其键。
另一个问题是,radix_tree_for_each_slot()
在循环内删除项目是否安全?删除会不会触发内部收缩导致迭代失败?
它似乎做了很多你需要的事情——它用 radix_tree_for_each_slot()
遍历基数树,同时它也 radix_tree_delete
(来自 cgwb_kill)。
所以我想如果你保持适当的同步就不会爆炸。
我正在尝试使用基数树为驱动程序维护一个内部数据。那么摧毁整棵树的正确方法是什么?
一个想法是用下面提到的方法遍历树:1
对于每个节点,释放项目并从树中删除其键。
另一个问题是,radix_tree_for_each_slot()
在循环内删除项目是否安全?删除会不会触发内部收缩导致迭代失败?
它似乎做了很多你需要的事情——它用 radix_tree_for_each_slot()
遍历基数树,同时它也 radix_tree_delete
(来自 cgwb_kill)。
所以我想如果你保持适当的同步就不会爆炸。