Chinaunix
标题:
slab_trylock() 函数的作用?
[打印本页]
作者:
Buddy_Zhang1
时间:
2016-02-08 08:50
标题:
slab_trylock() 函数的作用?
在初始化 SLUB 系统时,遇到 slab_trylock() 函数,具体含义不是很明确,该函数是用来上锁还是只是测试是否有锁的存在?
static __always_inline int slab_trylock(struct page *page)
{
int rc = 1;
rc = bit_spin_trylock(PG_locked, &page->flags);
return rc;
}
static inline int bit_spin_trylock(int bitnum, unsigned long *addr)
{
preempt_disable();
#if defined(CONFIG_SMP) || defined(CONFIG_DEBUG_SPINLOCK)
if (unlikely(test_and_set_bit_lock(bitnum, addr))) {
preempt_enable();
return 0;
}
#endif
__acquire(bitlock);
return 1;
}
作者:
nswcfd
时间:
2016-02-14 17:58
test_and_set,就是try_lock的基本语义嘛。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2