1212#include < userver/engine/io/tls_wrapper.hpp>
1313#include < userver/engine/run_standalone.hpp>
1414#include < userver/engine/single_consumer_event.hpp>
15- #include < userver/engine/sleep.hpp>
1615#include < userver/internal/net/net_listener.hpp>
1716#include < userver/logging/log.hpp>
1817#include < userver/utils/async.hpp>
@@ -92,18 +91,17 @@ constexpr auto kDeadlineMaxTime = std::chrono::seconds{60};
9291 TcpListener tcp_listener;
9392 auto [server, client] = tcp_listener.MakeSocketPair (deadline);
9493
95- std::atomic<bool > reading{true };
9694 crypto::SslCtx ssl_ctx = crypto::SslCtx::CreateServerTlsContext (
9795 crypto::LoadCertificatesChainFromString (cert),
9896 crypto::PrivateKey::LoadFromString (key)
9997 );
10098 auto server_task = engine::AsyncNoSpan (
101- [&reading, deadline, &ssl_ctx](auto && server) {
99+ [deadline, &ssl_ctx](auto && server) {
102100 auto tls_server =
103101 io::TlsWrapper::StartTlsServer (std::forward<decltype (server)>(server), ssl_ctx, deadline);
104102
105103 std::array<std::byte, 16'384 > buf{};
106- while (tls_server.RecvSome (buf.data (), buf.size (), deadline) > 0 && reading ) {
104+ while (tls_server.RecvSome (buf.data (), buf.size (), deadline) > 0 ) {
107105 /* receiving msgs */
108106 }
109107 },
@@ -114,15 +112,16 @@ constexpr auto kDeadlineMaxTime = std::chrono::seconds{60};
114112 const std::string payload (state.range (0 ), ' x' );
115113 const engine::io::IoData big_msg{payload.data (), payload.size ()};
116114
117- auto tls_client = io::TlsWrapper::StartTlsClient (std::move (client), {}, deadline);
115+ {
116+ auto tls_client = io::TlsWrapper::StartTlsClient (std::move (client), {}, deadline);
118117
119- for ([[maybe_unused]] auto _ : state) {
120- auto send_bytes =
121- tls_client.WriteAll ({msg, msg, msg, big_msg, msg, msg, big_msg, msg, big_msg, msg, msg}, deadline);
122- benchmark::DoNotOptimize (send_bytes);
118+ for ([[maybe_unused]] auto _ : state) {
119+ auto send_bytes =
120+ tls_client.WriteAll ({msg, msg, msg, big_msg, msg, msg, big_msg, msg, big_msg, msg, msg}, deadline);
121+ benchmark::DoNotOptimize (send_bytes);
122+ }
123123 }
124124
125- reading.store (false );
126125 server_task.Get ();
127126 });
128127}
@@ -136,18 +135,17 @@ BENCHMARK(TlsWriteAllBuffered)->RangeMultiplier(2)->Range(1 << 6, 1 << 12)->Unit
136135 TcpListener tcp_listener;
137136 auto [server, client] = tcp_listener.MakeSocketPair (deadline);
138137
139- std::atomic<bool > reading{true };
140138 crypto::SslCtx ssl_ctx = crypto::SslCtx::CreateServerTlsContext (
141139 crypto::LoadCertificatesChainFromString (cert),
142140 crypto::PrivateKey::LoadFromString (key)
143141 );
144142 auto server_task = engine::AsyncNoSpan (
145- [&reading, deadline, &ssl_ctx](auto && server) {
143+ [deadline, &ssl_ctx](auto && server) {
146144 auto tls_server =
147145 io::TlsWrapper::StartTlsServer (std::forward<decltype (server)>(server), ssl_ctx, deadline);
148146
149147 std::array<std::byte, 16'384 > buf{};
150- while (tls_server.RecvSome (buf.data (), buf.size (), deadline) > 0 && reading ) {
148+ while (tls_server.RecvSome (buf.data (), buf.size (), deadline) > 0 ) {
151149 /* receiving msgs */
152150 }
153151 },
@@ -158,17 +156,18 @@ BENCHMARK(TlsWriteAllBuffered)->RangeMultiplier(2)->Range(1 << 6, 1 << 12)->Unit
158156 const std::string payload (state.range (0 ), ' x' );
159157 const engine::io::IoData big_msg{payload.data (), payload.size ()};
160158
161- auto tls_client = io::TlsWrapper::StartTlsClient (std::move (client), {}, deadline);
159+ {
160+ auto tls_client = io::TlsWrapper::StartTlsClient (std::move (client), {}, deadline);
162161
163- std::size_t send_bytes{0 };
164- for ([[maybe_unused]] auto _ : state) {
165- for (const auto & io_data : {msg, msg, msg, big_msg, msg, msg, big_msg, msg, big_msg, msg, msg}) {
166- send_bytes += tls_client.WriteAll (io_data.data , io_data.len , deadline);
162+ std::size_t send_bytes{0 };
163+ for ([[maybe_unused]] auto _ : state) {
164+ for (const auto & io_data : {msg, msg, msg, big_msg, msg, msg, big_msg, msg, big_msg, msg, msg}) {
165+ send_bytes += tls_client.WriteAll (io_data.data , io_data.len , deadline);
166+ }
167+ benchmark::DoNotOptimize (send_bytes);
167168 }
168- benchmark::DoNotOptimize (send_bytes);
169169 }
170170
171- reading.store (false );
172171 server_task.Get ();
173172 });
174173}
0 commit comments