什么在spin_lock_init和DEFINE_SPINLOCK以及WHEN之间喜欢什么

时间:2014-10-14 16:51:11

标签: c linux-kernel linux-device-driver

我有一个问题。 DEFINE_SPINLOCK优于spin_lock_init吗?前者超过后者有什么优势,有哪些可能的缺点?

1 个答案:

答案 0 :(得分:5)

如果您有静态数据结构,DEFINE_SPINLOCK允许您声明一个自旋锁变量并在一行中初始化它。但是对于在运行时分配的任何内容,例如当自旋锁嵌入更大的结构时,则需要分配内存然后调用spin_lock_init()。

我想我会说可以使用它时我更喜欢DEFINE_SPINLOCK。优点很小(编译时初始化与运行时初始化相比,少了几行代码),但没有真正的缺点。如上所述,但通常无法使用DEFINE_SPINLOCK。