科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道Linux系统内核的同步机制-自旋锁 (2)

Linux系统内核的同步机制-自旋锁 (2)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

该宏类似于spin_lock_irqsave,只是该宏不保存标志寄存器的值。禁止本地中断并获取指定的锁

作者:赛迪网技术社区 来源:赛迪网技术社区 2007年10月26日

关键字: 自旋锁 同步 内核 Linux

  • 评论
  • 分享微博
  • 分享邮件

该宏类似于spin_lock_irqsave,只是该宏不保存标志寄存器的值。禁止本地中断并获取指定的锁

CODE:spin_lock_bh(lock)

该宏在得到自旋锁的同时失效本地软中断。

CODE:spin_unlock(lock)

该宏释放自旋锁lock,它与spin_trylock或spin_lock配对使用。如果spin_trylock返回假,表明没有获得自旋锁,因此不必使用spin_unlock释放。

CODE:spin_unlock_irqrestore(lock, flags)

该宏释放自旋锁lock的同时,也恢复标志寄存器的值为变量flags保存的值。它与spin_lock_irqsave配对使用。

CODE:spin_unlock_irq(lock)

该宏释放自旋锁lock的同时,并激活本地中断。它与spin_lock_irq配对应用。

CODE:spin_unlock_bh(lock)

该宏释放自旋锁lock的同时,也使能本地的软中断。它与spin_lock_bh配对使用。

CODE:spin_trylock_irqsave(lock, flags)

该宏如果获得自旋锁lock,它也将保存标志寄存器的值到变量flags中,并且失效本地中断,如果没有获得锁,它什么也不做。

因此如果能够立即获得锁,它等同于spin_lock_irqsave,如果不能获得锁,它等同于spin_trylock。如果该宏获得自旋锁lock,那需要使用spin_unlock_irqrestore来释放。

CODE:spin_trylock_irq(lock)

该宏类似于spin_trylock_irqsave,只是该宏不保存标志寄存器。如果该宏获得自旋锁lock,需要使用spin_unlock_irq来释放。

CODE:spin_trylock_bh(lock)
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章