added tp getter to async api
This commit is contained in:
parent
c568640595
commit
ef5c4f027c
@ -63,17 +63,16 @@ int main(int argc, char *argv[])
|
|||||||
cout << "*******************************************************************************\n";
|
cout << "*******************************************************************************\n";
|
||||||
|
|
||||||
size_t total_rate = 0;
|
size_t total_rate = 0;
|
||||||
spdlog::init_thread_pool(tp_queue_size, tp_threads);
|
spdlog::init_thread_pool(tp_queue_size, tp_threads);
|
||||||
for (int i = 0; i < iters; ++i)
|
for (int i = 0; i < iters; ++i)
|
||||||
{
|
{
|
||||||
auto as = spdlog::create_async_logger<null_sink_mt>("async(null-sink)");
|
auto as = spdlog::create_async_logger<null_sink_mt>("async(null-sink)");
|
||||||
total_rate += bench_as(howmany, as, client_threads);
|
total_rate += bench_as(howmany, as, client_threads);
|
||||||
spdlog::drop("async(null-sink)");
|
spdlog::drop("async(null-sink)");
|
||||||
spdlog::details::registry::instance().get_thread_pool()->wait_empty ();
|
spdlog::thread_pool()->wait_empty();
|
||||||
}
|
}
|
||||||
std::cout << endl;
|
std::cout << endl;
|
||||||
std::cout << "Avg rate: " << format(total_rate / iters) << "/sec" << std::endl;
|
std::cout << "Avg rate: " << format(total_rate / iters) << "/sec" << std::endl;
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (std::exception &ex)
|
catch (std::exception &ex)
|
||||||
{
|
{
|
||||||
|
@ -74,12 +74,13 @@ int main(int argc, char *argv[])
|
|||||||
cout << "async logging.. " << threads << " threads sharing same logger, " << format(howmany) << " iterations " << endl;
|
cout << "async logging.. " << threads << " threads sharing same logger, " << format(howmany) << " iterations " << endl;
|
||||||
cout << "*******************************************************************************\n";
|
cout << "*******************************************************************************\n";
|
||||||
|
|
||||||
|
spdlog::init_thread_pool(queue_size, 1);
|
||||||
for (int i = 0; i < 3; ++i)
|
for (int i = 0; i < 3; ++i)
|
||||||
{
|
{
|
||||||
spdlog::init_thread_pool(queue_size, 1);
|
|
||||||
auto as = spdlog::basic_logger_mt<spdlog::create_async>("as", "logs/basic_async.log", true);
|
auto as = spdlog::basic_logger_mt<spdlog::create_async>("as", "logs/basic_async.log", true);
|
||||||
bench_mt(howmany, as, threads);
|
bench_mt(howmany, as, threads);
|
||||||
spdlog::drop("as");
|
spdlog::drop("as");
|
||||||
|
spdlog::thread_pool()->wait_empty();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (std::exception &ex)
|
catch (std::exception &ex)
|
||||||
|
@ -59,4 +59,10 @@ inline void init_thread_pool(size_t q_size, size_t thread_count)
|
|||||||
auto tp = std::make_shared<thread_pool>(q_size, thread_count);
|
auto tp = std::make_shared<thread_pool>(q_size, thread_count);
|
||||||
registry::instance().set_thread_pool(std::move(tp));
|
registry::instance().set_thread_pool(std::move(tp));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get the global thread pool.
|
||||||
|
inline std::shared_ptr<spdlog::details::thread_pool> thread_pool()
|
||||||
|
{
|
||||||
|
return details::registry::instance().get_thread_pool();
|
||||||
|
}
|
||||||
} // namespace spdlog
|
} // namespace spdlog
|
||||||
|
@ -101,14 +101,13 @@ TEST_CASE("multi threads", "[async]")
|
|||||||
logger->info("Hello message #{}", j);
|
logger->info("Hello message #{}", j);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
logger->flush();
|
logger->flush();
|
||||||
}
|
}
|
||||||
|
|
||||||
for (auto &t : threads)
|
for (auto &t : threads)
|
||||||
{
|
{
|
||||||
t.join();
|
t.join();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
REQUIRE(test_sink->msg_counter() == messages * n_threads);
|
REQUIRE(test_sink->msg_counter() == messages * n_threads);
|
||||||
|
Loading…
Reference in New Issue
Block a user