我正在閱讀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
被定義爲空,那麼爲什麼在類聲明中使用它?
我想這與一些配置中,微距端最多被定義的東西(見http://gperftools.googlecode.com/svn-history/r99/trunk/src/base/thread_annotations.h) –
FYI:該代碼是從谷歌的開源項目性LevelDB:https://開頭github.com/google/leveldb/blob/77948e 7eec0613fb5cbecb7e320b9498607030b5/UTIL/mutexlock.h –