Signed-off-by: dongdong tao <tdd21151186@gmail.com>
return;
}
- Mutex flock("Client::_flush_range flock");
- Cond cond;
- bool safe = false;
- Context *onflush = new C_SafeCond(&flock, &cond, &safe);
+ C_SaferCond onflush("Client::_flush_range flock");
bool ret = objectcacher->file_flush(&in->oset, &in->layout, in->snaprealm->get_snap_context(),
- offset, size, onflush);
+ offset, size, &onflush);
if (!ret) {
// wait for flush
client_lock.Unlock();
- flock.Lock();
- while (!safe)
- cond.Wait(flock);
- flock.Unlock();
+ onflush.wait();
client_lock.Lock();
}
}