首页 > 解决方案 > write_unlock/write_unlock_irqrestore/write_unlock_irq/write_unlock_bh 的区别?

问题描述

在 Linux 内核中,我们有多种读写锁方法:

void write_unlock(rwlock_t *lock);
void write_unlock_irqrestore(rwlock_t *lock, unsigned long flags);
void write_unlock_irq(rwlock_t *lock);
void write_unlock_bh(rwlock_t *lock);

有谁知道区别和可能的情况?

标签: clinux-kernel

解决方案


write_unlock()               Releases given lock

write_unlock_irq()           Releases given lock and enables local interrupts

write_unlock_irqrestore()    Releases given lock and restores local interrupts to given previous state
 
write_unlock_bh()              Releases given lock, and enables local interrupts (bottom half) 

推荐阅读