子牛 发表于 2012-5-28 13:19:15

ACE_Refcounted_Auto_Ptr是否线程安全啊,看看代码

template <class X, class ACE_LOCK> inline ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK> *
ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>::attach (ACE_Refcounted_Auto_Ptr_Rep<X, ACE_LOCK>*& rep)
{
if (rep == 0)
    return 0;

++rep->ref_count_;

return rep;
}这个地方是指针引用计数++的地方,没用用锁,安全吗,请大侠指教

winston 发表于 2012-5-28 16:37:02

代码里面不是写了,rep便是锁的实例啊。

子牛 发表于 2012-5-28 17:24:13

ACE_INLINE long
ACE_Atomic_Op<ACE_Thread_Mutex, long>::operator++ (void)
{
#if defined (ACE_HAS_INTRINSIC_INTERLOCKED)
return ::_InterlockedIncrement (const_cast<long *> (&this->value_));
#elif defined (WIN32)
return ::InterlockedIncrement (const_cast<long *> (&this->value_));
#else /* WIN32 */
return (*increment_fn_) (&this->value_);
#endif /* WIN32 */
}
3q
++那个地方还搞了好多东西哦,呵呵,看到
页: [1]
查看完整版本: ACE_Refcounted_Auto_Ptr是否线程安全啊,看看代码