linux - 如何销毁linux内核中的一棵基数树

标签 linux linux-kernel radix-tree

我正在尝试使用基数树为驱动程序维护一个内部数据。那么摧毁整棵树的正确方法是什么?

一种想法是使用以下提到的方法遍历树:1

对于每个节点,释放项目并从树中删除它的键。

另一个问题是,radix_tree_for_each_slot() 在循环内删除项目是否安全? delete会不会触发内部shrink导致迭代失败?

最佳答案

查看 cgwb_bdi_unregister

它似乎做了很多你需要的事情——它用 radix_tree_for_each_slot() 遍历基数树,同时它也 radix_tree_delete (从 cgwb_kill 开始) .

所以我想如果您保持适当的同步,就不会发生任何事情。

关于linux - 如何销毁linux内核中的一棵基数树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34302801/

相关文章:

android - 无法弄清楚为什么这个内核构建失败

linux - 为什么 linux 不支持基于重复启动的 i2c 操作?

linux - linux gettimeofday() 的微秒时间是如何获取的,其精度如何?

linux-kernel - Linux内核中ARM寄存器r9

c - 取消引用指向不完整类型的指针(基数树)

c - 恢复关闭的标准输出后 printf 可见

php - 从 PHP 读取 .ini 文件时如何确保其安全

linux - 使用shell脚本删除前10个最大的常规文件

Patricia/​​Radix-Tree 的 Dart 实现