using namespace seastar;
static const char* name1 = "A";
static const char* name2 = "B";
- seastar::io_priority_class pc = engine().register_one_priority_class("hello",100);
- smp::invoke_on_all([pc] () {
+ seastar::io_priority_class pc = io_priority_class::register_one("hello",100);
+ smp::invoke_on_all([&pc] () {
// this is a trick to get all of the queues actually register their
// stats.
- return engine().update_shares_for_class(pc,101);
+ return pc.update_shares(101);
}).get();
boost::integer_range<int> rng(0, 1000);
const char* name = i%2 ? name1 : name2;
const char* prev_name = i%2 ? name2 : name1;
sleep(std::chrono::microseconds(100000/(i+1))).get();
- rename_priority_class(pc, name).get();
+ pc.rename(name).get();
std::set<sstring> label_vals = get_label_values(sstring("io_queue_shares"), sstring("class"));
// validate that the name that we *renamed to* is in the stats
BOOST_REQUIRE(label_vals.find(sstring(name)) != label_vals.end());
BOOST_REQUIRE(label_vals.find(sstring(prev_name)) == label_vals.end());
}
- smp::invoke_on_all([pc] () {
+ smp::invoke_on_all([&pc] () {
return do_with(std::uniform_int_distribution<int>(), boost::irange<int>(0, 1000),
- [pc] (std::uniform_int_distribution<int>& dist, boost::integer_range<int>& rng) {
+ [&pc] (std::uniform_int_distribution<int>& dist, boost::integer_range<int>& rng) {
// flip a fair coin and rename to one of two options and rename to that
// scheduling group name, do it 1000 in parallel on all shards so there
// is a chance of collision.
- return do_for_each(rng, [pc, &dist] (auto i) {
+ return do_for_each(rng, [&pc, &dist] (auto i) {
bool odd = dist(seastar::testing::local_random_engine)%2;
- return rename_priority_class(pc, odd ? name1 : name2);
+ return pc.rename(odd ? name1 : name2);
});
});
}).get();