L
linuxping
Unregistered / Unconfirmed
GUEST, unregistred user!
Detail::SIZE_T lock_, free_; volatile Detail::SIZE_T* pointer = reinterpret_cast <volatile Detail::SIZE_T*>(ptr); do { while((free_ = *pointer) & Detail::SIZE_T(1)) { ::Sleep(0); } lock_ = free_ | Detail::SIZE_T(1); } while(Detail::InterlockedCompareExchange_(pointer, lock_, free_) == lock_); 因为代码不完整,所以说明一下。Detail::SIZE_T就是windows中的size_t。上面的代码是在让我头晕。谁仔细解释一下?