Add scope guard
Summary: Small change: replace mutex_.Lock/mutex_.Unlock() with scope guard Test Plan: make all check Reviewers: igor, sdong Reviewed By: sdong Subscribers: leveldb Differential Revision: https://reviews.facebook.net/D21609
This commit is contained in:
parent
06a52bda64
commit
2fa643466d
@ -1865,21 +1865,23 @@ Status DBImpl::FlushMemTable(ColumnFamilyData* cfd,
|
||||
w.done = false;
|
||||
w.timeout_hint_us = kNoTimeOut;
|
||||
|
||||
WriteContext context;
|
||||
mutex_.Lock();
|
||||
Status s = BeginWrite(&w, 0);
|
||||
assert(s.ok() && !w.done); // No timeout and nobody should do our job
|
||||
Status s;
|
||||
{
|
||||
WriteContext context;
|
||||
MutexLock guard_lock(&mutex_);
|
||||
s = BeginWrite(&w, 0);
|
||||
assert(s.ok() && !w.done); // No timeout and nobody should do our job
|
||||
|
||||
// SetNewMemtableAndNewLogFile() will release and reacquire mutex
|
||||
// during execution
|
||||
s = SetNewMemtableAndNewLogFile(cfd, &context);
|
||||
cfd->imm()->FlushRequested();
|
||||
MaybeScheduleFlushOrCompaction();
|
||||
// SetNewMemtableAndNewLogFile() will release and reacquire mutex
|
||||
// during execution
|
||||
s = SetNewMemtableAndNewLogFile(cfd, &context);
|
||||
cfd->imm()->FlushRequested();
|
||||
MaybeScheduleFlushOrCompaction();
|
||||
|
||||
assert(!writers_.empty());
|
||||
assert(writers_.front() == &w);
|
||||
EndWrite(&w, &w, s);
|
||||
mutex_.Unlock();
|
||||
assert(!writers_.empty());
|
||||
assert(writers_.front() == &w);
|
||||
EndWrite(&w, &w, s);
|
||||
}
|
||||
|
||||
|
||||
if (s.ok() && options.wait) {
|
||||
|
Loading…
Reference in New Issue
Block a user