From 5ca782ee29d94e139fced55f596c32563808d923 Mon Sep 17 00:00:00 2001 From: Tor Egge Date: Sat, 26 Feb 2022 18:28:44 +0100 Subject: Remove inlining warnings (vespalib). --- .../net/async_resolver/async_resolver_test.cpp | 3 +++ vespalib/src/tests/rendezvous/rendezvous_test.cpp | 23 ++++++++++++++++++++++ .../simple_thread_bundle_test.cpp | 3 +++ vespalib/src/vespa/vespalib/net/async_resolver.cpp | 2 ++ vespalib/src/vespa/vespalib/net/async_resolver.h | 1 + .../vespalib/net/tls/maybe_tls_crypto_engine.cpp | 2 ++ .../vespalib/net/tls/maybe_tls_crypto_engine.h | 1 + .../vespa/vespalib/net/tls/tls_crypto_engine.cpp | 2 ++ .../src/vespa/vespalib/net/tls/tls_crypto_engine.h | 1 + vespalib/src/vespa/vespalib/util/CMakeLists.txt | 2 ++ .../src/vespa/vespalib/util/count_down_latch.cpp | 9 +++++++++ .../src/vespa/vespalib/util/count_down_latch.h | 2 +- vespalib/src/vespa/vespalib/util/gate.cpp | 9 +++++++++ vespalib/src/vespa/vespalib/util/gate.h | 1 + 14 files changed, 60 insertions(+), 1 deletion(-) create mode 100644 vespalib/src/vespa/vespalib/util/count_down_latch.cpp create mode 100644 vespalib/src/vespa/vespalib/util/gate.cpp diff --git a/vespalib/src/tests/net/async_resolver/async_resolver_test.cpp b/vespalib/src/tests/net/async_resolver/async_resolver_test.cpp index 6e8e6e5f761..739f036fb5c 100644 --- a/vespalib/src/tests/net/async_resolver/async_resolver_test.cpp +++ b/vespalib/src/tests/net/async_resolver/async_resolver_test.cpp @@ -22,12 +22,15 @@ struct MyClock : public AsyncResolver::Clock { using time_point = AsyncResolver::time_point; using seconds = AsyncResolver::seconds; time_point my_now; + ~MyClock() override; void set_now(seconds t) { my_now = time_point(std::chrono::duration_cast(t)); } AsyncResolver::time_point now() override { return my_now; } }; +MyClock::~MyClock() = default; + struct BlockingHostResolver : public AsyncResolver::HostResolver { CountDownLatch callers; Gate barrier; diff --git a/vespalib/src/tests/rendezvous/rendezvous_test.cpp b/vespalib/src/tests/rendezvous/rendezvous_test.cpp index 616824af7f1..11bcf62d77e 100644 --- a/vespalib/src/tests/rendezvous/rendezvous_test.cpp +++ b/vespalib/src/tests/rendezvous/rendezvous_test.cpp @@ -15,6 +15,7 @@ struct Value { template struct Empty : Rendezvous { Empty(size_t n) : Rendezvous(n) {} + ~Empty() override; void mingle() override {} T meet(size_t thread_id) { if constexpr (ext_id) { @@ -26,6 +27,9 @@ struct Empty : Rendezvous { } }; +template +Empty::~Empty() = default; + template struct Add : Rendezvous, ext_id> { using Super = Rendezvous, ext_id>; @@ -33,6 +37,7 @@ struct Add : Rendezvous, ext_id> { using Super::in; using Super::out; Add(size_t n) : Super(n) {} + ~Add() override; void mingle() override { size_t sum = 0; for (size_t i = 0; i < size(); ++i) { @@ -44,6 +49,9 @@ struct Add : Rendezvous, ext_id> { } }; +template +Add::~Add() = default; + template struct Modify : Rendezvous { using Super = Rendezvous; @@ -51,6 +59,7 @@ struct Modify : Rendezvous { using Super::in; using Super::out; Modify(size_t n) : Super(n) {} + ~Modify() override; void mingle() override { for (size_t i = 0; i < size(); ++i) { in(i) += 1; @@ -61,6 +70,9 @@ struct Modify : Rendezvous { } }; +template +Modify::~Modify() = default; + template struct Swap : Rendezvous { using Super = Rendezvous; @@ -68,12 +80,16 @@ struct Swap : Rendezvous { using Super::in; using Super::out; Swap() : Super(2) {} + ~Swap() override; void mingle() override { out(0) = std::move(in(1)); out(1) = std::move(in(0)); } }; +template +Swap::~Swap() = default; + template struct DetectId : Rendezvous { using Super = Rendezvous; @@ -81,6 +97,7 @@ struct DetectId : Rendezvous { using Super::in; using Super::out; DetectId(size_t n) : Super(n) {} + ~DetectId() override; void mingle() override { for (size_t i = 0; i < size(); ++i) { out(i) = i; @@ -96,8 +113,12 @@ struct DetectId : Rendezvous { } }; +template +DetectId::~DetectId() = default; + struct Any : Rendezvous { Any(size_t n) : Rendezvous(n) {} + ~Any() override; void mingle() override { bool result = false; for (size_t i = 0; i < size(); ++i) { @@ -110,6 +131,8 @@ struct Any : Rendezvous { bool check(bool flag) { return this->rendezvous(flag); } }; +Any::~Any() = default; + TEST("require that creating an empty rendezvous will fail") { EXPECT_EXCEPTION(Add(0), IllegalArgumentException, ""); EXPECT_EXCEPTION(Add(0), IllegalArgumentException, ""); diff --git a/vespalib/src/tests/simple_thread_bundle/simple_thread_bundle_test.cpp b/vespalib/src/tests/simple_thread_bundle/simple_thread_bundle_test.cpp index 8d5d393fe22..5d69a18112a 100644 --- a/vespalib/src/tests/simple_thread_bundle/simple_thread_bundle_test.cpp +++ b/vespalib/src/tests/simple_thread_bundle/simple_thread_bundle_test.cpp @@ -37,12 +37,15 @@ struct State { struct Blocker : Runnable { Gate start; + ~Blocker() override; void run() override { start.await(); } Gate done; // set externally }; +Blocker::~Blocker() = default; + TEST_MT_FF("require that signals can be counted and cancelled", 2, Signal, size_t(16000)) { if (thread_id == 0) { for (size_t i = 0; i < f2; ++i) { diff --git a/vespalib/src/vespa/vespalib/net/async_resolver.cpp b/vespalib/src/vespa/vespalib/net/async_resolver.cpp index f66d34d4174..7eab9d7c13c 100644 --- a/vespalib/src/vespa/vespalib/net/async_resolver.cpp +++ b/vespalib/src/vespa/vespalib/net/async_resolver.cpp @@ -155,6 +155,8 @@ AsyncResolver::AsyncResolver(HostResolver::SP resolver, size_t num_threads) { } +AsyncResolver::~AsyncResolver() = default; + void AsyncResolver::wait_for_pending_resolves() { _executor->sync(); diff --git a/vespalib/src/vespa/vespalib/net/async_resolver.h b/vespalib/src/vespa/vespalib/net/async_resolver.h index 28d04e76c16..64e2285acd2 100644 --- a/vespalib/src/vespa/vespalib/net/async_resolver.h +++ b/vespalib/src/vespa/vespalib/net/async_resolver.h @@ -124,6 +124,7 @@ private: AsyncResolver(HostResolver::SP resolver, size_t num_threads); public: + ~AsyncResolver(); void resolve_async(const vespalib::string &spec, ResultHandler::WP result_handler); void wait_for_pending_resolves(); static AsyncResolver::SP create(Params params); diff --git a/vespalib/src/vespa/vespalib/net/tls/maybe_tls_crypto_engine.cpp b/vespalib/src/vespa/vespalib/net/tls/maybe_tls_crypto_engine.cpp index 91dc64e4165..832d52c0383 100644 --- a/vespalib/src/vespa/vespalib/net/tls/maybe_tls_crypto_engine.cpp +++ b/vespalib/src/vespa/vespalib/net/tls/maybe_tls_crypto_engine.cpp @@ -5,6 +5,8 @@ namespace vespalib { +MaybeTlsCryptoEngine::~MaybeTlsCryptoEngine() = default; + CryptoSocket::UP MaybeTlsCryptoEngine::create_client_crypto_socket(SocketHandle socket, const SocketSpec &spec) { diff --git a/vespalib/src/vespa/vespalib/net/tls/maybe_tls_crypto_engine.h b/vespalib/src/vespa/vespalib/net/tls/maybe_tls_crypto_engine.h index 8c8a4452c80..2b82d6eb8bc 100644 --- a/vespalib/src/vespa/vespalib/net/tls/maybe_tls_crypto_engine.h +++ b/vespalib/src/vespa/vespalib/net/tls/maybe_tls_crypto_engine.h @@ -28,6 +28,7 @@ public: : _null_engine(std::make_shared()), _tls_engine(std::move(tls_engine)), _use_tls_when_client(use_tls_when_client) {} + ~MaybeTlsCryptoEngine() override; bool use_tls_when_client() const override { return _use_tls_when_client; } bool always_use_tls_when_server() const override { return false; } CryptoSocket::UP create_client_crypto_socket(SocketHandle socket, const SocketSpec &spec) override; diff --git a/vespalib/src/vespa/vespalib/net/tls/tls_crypto_engine.cpp b/vespalib/src/vespa/vespalib/net/tls/tls_crypto_engine.cpp index 119b4b93a54..9ae270780b5 100644 --- a/vespalib/src/vespa/vespalib/net/tls/tls_crypto_engine.cpp +++ b/vespalib/src/vespa/vespalib/net/tls/tls_crypto_engine.cpp @@ -6,6 +6,8 @@ namespace vespalib { +TlsCryptoEngine::~TlsCryptoEngine() = default; + TlsCryptoEngine::TlsCryptoEngine(net::tls::TransportSecurityOptions tls_opts, net::tls::AuthorizationMode authz_mode) : _tls_ctx(net::tls::TlsContext::create_default_context(tls_opts, authz_mode)) { diff --git a/vespalib/src/vespa/vespalib/net/tls/tls_crypto_engine.h b/vespalib/src/vespa/vespalib/net/tls/tls_crypto_engine.h index 13a514f6954..0e05363ab1b 100644 --- a/vespalib/src/vespa/vespalib/net/tls/tls_crypto_engine.h +++ b/vespalib/src/vespa/vespalib/net/tls/tls_crypto_engine.h @@ -25,6 +25,7 @@ private: public: explicit TlsCryptoEngine(net::tls::TransportSecurityOptions tls_opts, net::tls::AuthorizationMode authz_mode = net::tls::AuthorizationMode::Enforce); + ~TlsCryptoEngine() override; std::unique_ptr create_tls_client_crypto_socket(SocketHandle socket, const SocketSpec &spec) override; std::unique_ptr create_tls_server_crypto_socket(SocketHandle socket) override; bool use_tls_when_client() const override { return true; } diff --git a/vespalib/src/vespa/vespalib/util/CMakeLists.txt b/vespalib/src/vespa/vespalib/util/CMakeLists.txt index 752bf60c688..747ed736aad 100644 --- a/vespalib/src/vespa/vespalib/util/CMakeLists.txt +++ b/vespalib/src/vespa/vespalib/util/CMakeLists.txt @@ -18,6 +18,7 @@ vespa_add_library(vespalib_vespalib_util OBJECT classname.cpp compress.cpp compressor.cpp + count_down_latch.cpp cpu_usage.cpp destructor_callbacks.cpp dual_merge_director.cpp @@ -26,6 +27,7 @@ vespa_add_library(vespalib_vespalib_util OBJECT exceptions.cpp executor_idle_tracking.cpp file_area_freelist.cpp + gate.cpp gencnt.cpp generationhandler.cpp generationholder.cpp diff --git a/vespalib/src/vespa/vespalib/util/count_down_latch.cpp b/vespalib/src/vespa/vespalib/util/count_down_latch.cpp new file mode 100644 index 00000000000..5064a0a962f --- /dev/null +++ b/vespalib/src/vespa/vespalib/util/count_down_latch.cpp @@ -0,0 +1,9 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#include "count_down_latch.h" + +namespace vespalib { + +CountDownLatch::~CountDownLatch() = default; + +} diff --git a/vespalib/src/vespa/vespalib/util/count_down_latch.h b/vespalib/src/vespa/vespalib/util/count_down_latch.h index 613a60e90c5..d4298f0d5a9 100644 --- a/vespalib/src/vespa/vespalib/util/count_down_latch.h +++ b/vespalib/src/vespa/vespalib/util/count_down_latch.h @@ -90,7 +90,7 @@ public: /** * Empty. Needs to be virtual to reduce compiler warnings. **/ - virtual ~CountDownLatch() = default; + virtual ~CountDownLatch(); }; } // namespace vespalib diff --git a/vespalib/src/vespa/vespalib/util/gate.cpp b/vespalib/src/vespa/vespalib/util/gate.cpp new file mode 100644 index 00000000000..485c29dc5c8 --- /dev/null +++ b/vespalib/src/vespa/vespalib/util/gate.cpp @@ -0,0 +1,9 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. + +#include "gate.h" + +namespace vespalib { + +Gate::~Gate() = default; + +} diff --git a/vespalib/src/vespa/vespalib/util/gate.h b/vespalib/src/vespa/vespalib/util/gate.h index c914a4f0911..315adb2939e 100644 --- a/vespalib/src/vespa/vespalib/util/gate.h +++ b/vespalib/src/vespa/vespalib/util/gate.h @@ -17,6 +17,7 @@ public: * Sets the initial count to 1. **/ Gate() noexcept : CountDownLatch(1) {} + ~Gate() override; }; } // namespace vespalib -- cgit v1.2.3