6 #include "sol3/net/msg/tcp_telemetry.h"
18 telemetry_.
mutate([n](
auto& t) { t.bytes_read += n; });
21 telemetry_.
mutate([n](
auto& t) {
23 t.write_queue_length -= n;
27 telemetry_.
mutate([n](
auto& t) {
29 t.write_queue_length -= n;
33 telemetry_.
mutate([n](
auto& t) { t.write_queue_length += n; });
36 telemetry_.
mutate([n](
auto& t) { t.kernel_send_queue_length = n; });
39 telemetry_.
mutate([n](
auto& t) { t.frames_read += n; });
42 telemetry_.
mutate([n](
auto& t) { t.frames_written += n; });
45 telemetry_.
mutate([](
auto& t) {
46 t.connections_opened++;
47 t.active_connections++;
51 telemetry_.
mutate([](
auto& t) {
52 t.connections_closed++;
53 t.active_connections--;
54 t.kernel_send_queue_length = -1;
59 telemetry_.
mutate([](
auto& t) { t.connection_errors++; });
63 return telemetry_.
access([](
auto& t) {
return t; });
Small helper for read/write access to a value guarded by a shared mutex.
Definition: thread_safe_value.h:13
auto mutate(TFunction &&cb)
Exclusive access; executes cb(TData&) under a unique_lock.
Definition: thread_safe_value.h:27
auto access(TFunction &&cb) const
Shared/read-only access; executes cb(TData const&) under a shared_lock.
Definition: thread_safe_value.h:34
Definition: tcp_telemetry.h:15
msg::TcpTelemetryT snapshot()
Definition: tcp_telemetry.h:62
void onBytesQueued(size_t n)
Definition: tcp_telemetry.h:32
void onConnOpened()
Definition: tcp_telemetry.h:44
void onConnClosed()
Definition: tcp_telemetry.h:50
void onFramesWritten(size_t n)
Definition: tcp_telemetry.h:41
void onFramesRead(size_t n)
Definition: tcp_telemetry.h:38
void onBytesDropped(size_t n)
Definition: tcp_telemetry.h:26
void onBytesRead(size_t n)
Definition: tcp_telemetry.h:17
void onKernelQueueSampled(int32_t n)
Definition: tcp_telemetry.h:35
void onConnError()
Definition: tcp_telemetry.h:58
void onBytesWritten(size_t n)
Definition: tcp_telemetry.h:20
Definition: buffer_pool.h:12