【问题标题】:Read/Write lock for linux kernel modulelinux内核模块的读/写锁
【发布时间】:2016-08-10 18:07:20
【问题描述】:

我正在尝试使用读/写锁来保护我的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>

【问题讨论】:

    标签: linux multithreading locking


    【解决方案1】:

    RW_LOCK_UNLOCKED 已被弃用很久,终于在 Linux 2.6.39 中被移除,所以现在,according to the documentation

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

    ...

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

    喜欢

    static DEFINE_RWLOCK(myrwlock);
    

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

    而不是

    rwlock_t myrwlock = RW_LOCK_UNLOCKED;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-20
      • 2022-01-06
      • 2012-09-27
      • 1970-01-01
      • 2012-04-11
      相关资源
      最近更新 更多