我正在阅读 leveldb 的源代码,尤其是。关于互斥锁。
我发现了这个声明:
class SCOPED_LOCKABLE MutexLock {
public:
explicit MutexLock(port::Mutex *mu) EXCLUSIVE_LOCK_FUNCTION(mu)
: mu_(mu) {
this->mu_->Lock();
}
~MutexLock() UNLOCK_FUNCTION() { this->mu_->Unlock(); }
private:
port::Mutex *const mu_;
// No copying allowed
MutexLock(const MutexLock&);
void operator=(const MutexLock&);
};
我发现它SCOPED_LOCKABLE
被定义为空,那么为什么在类声明中使用它呢?