由此先熟悉kernel中list的实现以及常用方法以帮助学习Binder内容。
这种方式构造方法十分巧妙当调用LIST_HEAD(name)
时,即为
个人觉得这种方式更容易看懂:
INIT_LIST_HEAD
初始化链表时,实质将头部节点的next以及prev嘟指向自己
C的编译器不能够保证对一个word的访问是原子的。所有可导致多线程竞争的程序都有可能因为编译导致出现不同的结果
简单而訁,有三点好处:
尾部加入节点与头部加入节点都是使用了__list_add
方法可以将__list_add
参数理解为: