Throttle::Throttle(CephContext *cct, const std::string& n, int64_t m,
bool _use_perf)
: cct(cct), name(n), max(m),
- lock(ceph::make_mutex(name)),
use_perf(_use_perf)
{
ceph_assert(m >= 0);
max = m;
}
-bool Throttle::_wait(int64_t c, std::unique_lock<ceph::mutex>& l)
+bool Throttle::_wait(int64_t c, std::unique_lock<std::mutex>& l)
{
mono_time start;
bool waited = false;
BackoffThrottle::BackoffThrottle(CephContext *cct, const std::string& n,
unsigned expected_concurrency, bool _use_perf)
: cct(cct), name(n),
- lock(ceph::make_mutex(name)),
conds(expected_concurrency),///< [in] determines size of conds
use_perf(_use_perf)
{
return m_ret_val;
}
-void OrderedThrottle::complete_pending_ops(std::unique_lock<ceph::mutex>& l) {
+void OrderedThrottle::complete_pending_ops(std::unique_lock<std::mutex>& l) {
while (true) {
auto it = m_tid_result.begin();
if (it == m_tid_result.end() || it->first != m_complete_tid ||
const std::string name;
PerfCountersRef logger;
std::atomic<int64_t> count = { 0 }, max = { 0 };
- ceph::mutex lock;
- std::list<ceph::condition_variable> conds;
+ std::mutex lock;
+ std::list<std::condition_variable> conds;
const bool use_perf;
public:
(c >= m && cur > m)); // except for large c
}
- bool _wait(int64_t c, std::unique_lock<ceph::mutex>& l);
+ bool _wait(int64_t c, std::unique_lock<std::mutex>& l);
public:
/**
const std::string name;
PerfCountersRef logger;
- ceph::mutex lock;
- using locker = std::unique_lock<ceph::mutex>;
+ std::mutex lock;
+ using locker = std::unique_lock<std::mutex>;
unsigned next_cond = 0;
/// allocated once to avoid constantly allocating new ones
- vector<ceph::condition_variable> conds;
+ vector<std::condition_variable> conds;
const bool use_perf;
/// pointers into conds
- list<ceph::condition_variable*> waiters;
+ list<std::condition_variable*> waiters;
- std::list<ceph::condition_variable*>::iterator _push_waiter() {
+ std::list<std::condition_variable*>::iterator _push_waiter() {
unsigned next = next_cond++;
if (next_cond == conds.size())
next_cond = 0;
bool pending_error() const;
int wait_for_ret();
private:
- mutable ceph::mutex m_lock = ceph::make_mutex("SimpleThrottle::m_lock");
- ceph::condition_variable m_cond;
+ mutable std::mutex m_lock;
+ std::condition_variable m_cond;
uint64_t m_max;
uint64_t m_current = 0;
int m_ret = 0;
typedef std::map<uint64_t, Result> TidResult;
- mutable ceph::mutex m_lock = ceph::make_mutex("OrderedThrottle::m_lock");
- ceph::condition_variable m_cond;
+ mutable std::mutex m_lock;
+ std::condition_variable m_cond;
uint64_t m_max;
uint64_t m_current = 0;
int m_ret_val = 0;
TidResult m_tid_result;
- void complete_pending_ops(std::unique_lock<ceph::mutex>& l);
+ void complete_pending_ops(std::unique_lock<std::mutex>& l);
uint32_t waiters = 0;
};