Linux内核模块的读/写锁

时间:2016-08-10 18:07:21

标签: linux multithreading locking

我试图使用读/写锁保护我的list数据,我在这个帖子中找到了解决方案: What's the best linux kernel locking mechanism for a specific scenario

但我无法找到此解决方案所需的标题,似乎已过时,错误:

error: ‘RW_LOCK_UNLOCKED’ undeclared here (not in a function)

使用<linux/spinlock.h>

1 个答案:

答案 0 :(得分:3)

PIX_FMT_*已被弃用了很长时间,最后在Linux 2.6.39中删除了,现在,according to the documentation

  

对于动态初始化,请使用spin_lock_init()或rwlock_init()作为   合适:

     

...

     

对于静态初始化,请使用DEFINE_SPINLOCK()/ DEFINE_RWLOCK()或   __SPIN_LOCK_UNLOCKED()/ __RW_LOCK_UNLOCKED()视情况而定。

RW_LOCK_UNLOCKED

static DEFINE_RWLOCK(myrwlock);

而不是

rwlock_t myrwlock;
static int __init rwlock_init(void)
{
    rwlock_init(&myrwlock);
}