Linux内核中的wake_lock
#include <linux/wakelock.h>
#include <linux/jiffies.h>
struct wake_lock wlock;
初始化(一般放在probe或者register函数里):
wake_lock_init(&wlock, WAKE_LOCK_SUSPEND, "wlock name");
判断是否已加锁,释放锁
if (wake_lock_active(&pon->wlock)) {
wake_unlock(&pon->wlock);
}
判断是否已加锁,加锁
if (!wake_lock_active(&pon->wlock)) {
wake_lock(&pon->wlock);
}
销毁锁(一般放在remove或者unregister函数里)
wake_lock_destroy(&pon->wlock);
超时锁
wake_lock_timeout(&pon->wlock, msecs_to_jiffies(N)); //N ms之后自动释放锁
本文详细介绍了Linux内核中的wake_lock机制,包括初始化、判断锁状态、加锁、解锁及销毁锁的过程,同时也讲解了如何设置超时锁。
1914

被折叠的 条评论
为什么被折叠?



