admin11 发表于 2009-11-26 13:34:06

ACE中的读写锁

在ACE的读写锁中,ACE_READ_GUARD展开如下:

# define ACE_READ_GUARD(MUTEX,OBJ,LOCK) \
ACE_Read_Guard< MUTEX > OBJ (LOCK); \
    if (OBJ.locked () == 0) return;

我发现所有的ACE守卫类中都有 if (OBJ.locked () == 0) 的判断,
我想问一下,OBJ.locked () 等于0的时候多吗?在什么情况下等于0?
是在被别的线程锁定的时候等于0吗?

[ 本帖最后由 admin11 于 2009-11-26 13:41 编辑 ]

wishel 发表于 2009-11-26 15:12:52

正常情况下应该不会==0。

“在什么情况下等于0?是在被别的线程锁定的时候等于0吗?”
可以去看对应的OBJ.locked ()源码,比如ACE_Thread_Mutex:: locked ()
看它在什么情况下会返回0
页: [1]
查看完整版本: ACE中的读写锁