From: Kefu Chai Date: Thu, 29 Oct 2020 05:03:40 +0000 (+0800) Subject: crimson/gtest_seastar: do not keep a copy of argv X-Git-Tag: v16.1.0~726^2~1 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=0df04e602b81a55356966678199d615224928dca;p=ceph.git crimson/gtest_seastar: do not keep a copy of argv argv is always available in the whole life cycle of the application, so there is no need to keep a copy of it. Signed-off-by: Kefu Chai --- diff --git a/src/test/crimson/gtest_seastar.cc b/src/test/crimson/gtest_seastar.cc index e8d6ae22f731..dd1d39092053 100644 --- a/src/test/crimson/gtest_seastar.cc +++ b/src/test/crimson/gtest_seastar.cc @@ -9,13 +9,9 @@ seastar_gtest_env_t seastar_test_suite_t::seastar_env; seastar_gtest_env_t::seastar_gtest_env_t() : begin_fd{seastar::file_desc::eventfd(0, 0)} {} -void seastar_gtest_env_t::init(int _argc, char **_argv) +void seastar_gtest_env_t::init(int argc, char **argv) { - argc = _argc; - argv = new char *[argc]; - for (int i = 0; i < argc; ++i) argv[i] = strdup(_argv[i]); - - thread = std::thread([this] { reactor(); }); + thread = std::thread([argc, argv, this] { reactor(argc, argv); }); eventfd_t result = 0; if (int r = ::eventfd_read(begin_fd.get(), &result); r < 0) { std::cerr << "unable to eventfd_read():" << errno << std::endl; @@ -33,13 +29,9 @@ void seastar_gtest_env_t::stop() } seastar_gtest_env_t::~seastar_gtest_env_t() -{ - ceph_assert(argv); - for (int i = 0; i < argc; ++i) free(argv[i]); - delete[] argv; -} +{} -void seastar_gtest_env_t::reactor() +void seastar_gtest_env_t::reactor(int argc, char** argv) { app.run(argc, argv, [this] { on_end.reset(new seastar::readable_eventfd); diff --git a/src/test/crimson/gtest_seastar.h b/src/test/crimson/gtest_seastar.h index ed02891f840b..6f4d376d27aa 100644 --- a/src/test/crimson/gtest_seastar.h +++ b/src/test/crimson/gtest_seastar.h @@ -20,8 +20,6 @@ struct seastar_gtest_env_t { seastar::file_desc begin_fd; std::unique_ptr on_end; - int argc = 0; - char **argv = nullptr; std::thread thread; seastar_gtest_env_t(); @@ -29,7 +27,7 @@ struct seastar_gtest_env_t { void init(int argc, char **argv); void stop(); - void reactor(); + void reactor(int argc, char **argv); template void run(Func &&func) {