TEST(ReshardWait, wait_block)
{
constexpr ceph::timespan wait_duration = 10ms;
+ const auto dpp = NoDoutPrefix{g_ceph_context, ceph_subsys_rgw};
RGWReshardWait waiter(wait_duration);
const auto start = Clock::now();
- EXPECT_EQ(0, waiter.wait(null_yield));
+ EXPECT_EQ(0, waiter.wait(&dpp, null_yield));
const ceph::timespan elapsed = Clock::now() - start;
EXPECT_LE(wait_duration, elapsed); // waited at least 10ms
{
constexpr ceph::timespan short_duration = 10ms;
constexpr ceph::timespan long_duration = 10s;
+ const auto dpp = NoDoutPrefix{g_ceph_context, ceph_subsys_rgw};
RGWReshardWait long_waiter(long_duration);
RGWReshardWait short_waiter(short_duration);
const auto start = Clock::now();
- std::thread thread([&long_waiter] {
- EXPECT_EQ(-ECANCELED, long_waiter.wait(null_yield));
+ std::thread thread([&dpp, &long_waiter] {
+ EXPECT_EQ(-ECANCELED, long_waiter.wait(&dpp, null_yield));
});
- EXPECT_EQ(0, short_waiter.wait(null_yield));
+ EXPECT_EQ(0, short_waiter.wait(&dpp, null_yield));
long_waiter.stop(); // cancel long waiter
TEST(ReshardWait, wait_yield)
{
constexpr ceph::timespan wait_duration = 50ms;
+ const auto dpp = NoDoutPrefix{g_ceph_context, ceph_subsys_rgw};
RGWReshardWait waiter(wait_duration);
boost::asio::io_context context;
boost::asio::spawn(context, [&] (boost::asio::yield_context yield) {
- EXPECT_EQ(0, waiter.wait(yield));
+ EXPECT_EQ(0, waiter.wait(&dpp, yield));
}, rethrow);
const auto start = Clock::now();
{
constexpr ceph::timespan short_duration = 50ms;
constexpr ceph::timespan long_duration = 10s;
+ const auto dpp = NoDoutPrefix{g_ceph_context, ceph_subsys_rgw};
RGWReshardWait long_waiter(long_duration);
RGWReshardWait short_waiter(short_duration);
boost::asio::io_context context;
boost::asio::spawn(context,
[&] (boost::asio::yield_context yield) {
- EXPECT_EQ(-ECANCELED, long_waiter.wait(yield));
+ EXPECT_EQ(-ECANCELED, long_waiter.wait(&dpp, yield));
}, rethrow);
const auto start = Clock::now();
EXPECT_EQ(1u, context.poll()); // spawn
EXPECT_FALSE(context.stopped());
- EXPECT_EQ(0, short_waiter.wait(null_yield));
+ EXPECT_EQ(0, short_waiter.wait(&dpp, null_yield));
long_waiter.stop(); // cancel long waiter
{
constexpr ceph::timespan short_duration = 50ms;
constexpr ceph::timespan long_duration = 10s;
+ const auto dpp = NoDoutPrefix{g_ceph_context, ceph_subsys_rgw};
RGWReshardWait long_waiter(long_duration);
RGWReshardWait short_waiter(short_duration);
// spawn 4 threads
std::vector<std::thread> threads;
{
- auto sync_waiter([&long_waiter] {
- EXPECT_EQ(-ECANCELED, long_waiter.wait(null_yield));
+ auto sync_waiter([&dpp, &long_waiter] {
+ EXPECT_EQ(-ECANCELED, long_waiter.wait(&dpp, null_yield));
});
threads.emplace_back(sync_waiter);
threads.emplace_back(sync_waiter);
boost::asio::io_context context;
{
auto async_waiter = [&] (boost::asio::yield_context yield) {
- EXPECT_EQ(-ECANCELED, long_waiter.wait(yield));
+ EXPECT_EQ(-ECANCELED, long_waiter.wait(&dpp, yield));
};
boost::asio::spawn(context, async_waiter, rethrow);
boost::asio::spawn(context, async_waiter, rethrow);
EXPECT_EQ(4u, context.poll()); // spawn
EXPECT_FALSE(context.stopped());
- EXPECT_EQ(0, short_waiter.wait(null_yield));
+ EXPECT_EQ(0, short_waiter.wait(&dpp, null_yield));
long_waiter.stop(); // cancel long waiter