{
OpSequencer *osr = txc->osr.get();
dout(10) << __func__ << " " << txc << " osr " << osr << dendl;
- deferred_aggressive = true; // FIXME: maybe osr-local aggressive flag?
+ ++deferred_aggressive; // FIXME: maybe osr-local aggressive flag?
{
// submit anything pending
std::lock_guard<std::mutex> l(deferred_lock);
kv_cond.notify_one();
}
osr->drain_preceding(txc);
- deferred_aggressive = false;
+ --deferred_aggressive;
dout(10) << __func__ << " " << osr << " done" << dendl;
}
}
dout(20) << __func__ << " osr_set " << s << dendl;
- deferred_aggressive = true;
+ ++deferred_aggressive;
{
// submit anything pending
std::lock_guard<std::mutex> l(deferred_lock);
dout(20) << __func__ << " drain " << osr << dendl;
osr->drain();
}
- deferred_aggressive = false;
+ --deferred_aggressive;
dout(10) << __func__ << " done" << dendl;
}
std::atomic<uint64_t> deferred_seq = {0};
deferred_osr_queue_t deferred_queue; ///< osr's with deferred io pending
int deferred_queue_size = 0; ///< num txc's queued across all osrs
- atomic_bool deferred_aggressive = {false}; ///< aggressive wakeup of kv thread
+ atomic_int deferred_aggressive = {0}; ///< aggressive wakeup of kv thread
int m_finisher_num = 1;
vector<Finisher*> finishers;