65,206
社区成员
发帖
与我相关
我的任务
分享 void lock() {
detail::Sleeper sleeper;
do {
while (lock_ != FREE) {
asm volatile("" : : : "memory");
sleeper.wait();
}
} while (!try_lock());
DCHECK(lock_ == LOCKED);
}
void unlock() {
CHECK(lock_ == LOCKED);
asm volatile("" : : : "memory");
lock_ = FREE; // release barrier on x86
}