Skip to content

Commit 1b46b3c

Browse files
Shutting down verification after mutex
1 parent a8c832f commit 1b46b3c

File tree

1 file changed

+12
-11
lines changed

1 file changed

+12
-11
lines changed

src/datadog/telemetry/telemetry_impl.cpp

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -243,17 +243,18 @@ Telemetry::Telemetry(Telemetry&& rhs)
243243
logger_(std::move(rhs.logger_)),
244244
telemetry_endpoint_(std::move(rhs.telemetry_endpoint_)),
245245
tracer_signature_(std::move(rhs.tracer_signature_)),
246-
http_client_(rhs.http_client_),
246+
http_client_(std::move(rhs.http_client_)),
247247
clock_(std::move(rhs.clock_)),
248248
scheduler_(std::move(rhs.scheduler_)),
249+
shutting_down_(rhs.shutting_down_.load(std::memory_order_relaxed)),
249250
counters_(std::move(rhs.counters_)),
250251
counters_snapshot_(std::move(rhs.counters_snapshot_)),
251252
rates_(std::move(rhs.rates_)),
252253
rates_snapshot_(std::move(rhs.rates_snapshot_)),
253254
distributions_(std::move(rhs.distributions_)),
254255
seq_id_(rhs.seq_id_),
255-
config_seq_ids_(rhs.config_seq_ids_),
256-
host_info_(rhs.host_info_) {
256+
config_seq_ids_(std::move(rhs.config_seq_ids_)),
257+
host_info_(std::move(rhs.host_info_)) {
257258
cancel_tasks(rhs.tasks_);
258259
schedule_tasks();
259260
}
@@ -738,13 +739,13 @@ void Telemetry::capture_metrics() {
738739

739740
void Telemetry::log(std::string message, telemetry::LogLevel level,
740741
Optional<std::string> stacktrace) {
741-
if (shutting_down_.load(std::memory_order_acquire)) {
742-
return;
743-
}
744742
auto timestamp = std::chrono::duration_cast<std::chrono::seconds>(
745743
clock_().wall.time_since_epoch())
746744
.count();
747745
std::lock_guard l{log_mutex_};
746+
if (shutting_down_.load(std::memory_order_acquire)) {
747+
return;
748+
}
748749
logs_.emplace_back(
749750
telemetry::LogMessage{std::move(message), level, stacktrace, timestamp});
750751
}
@@ -755,10 +756,10 @@ void Telemetry::increment_counter(const Counter& id) {
755756

756757
void Telemetry::increment_counter(const Counter& id,
757758
const std::vector<std::string>& tags) {
759+
std::lock_guard l{counter_mutex_};
758760
if (shutting_down_.load(std::memory_order_acquire)) {
759761
return;
760762
}
761-
std::lock_guard l{counter_mutex_};
762763
counters_[{id, tags}] += 1;
763764
}
764765

@@ -768,10 +769,10 @@ void Telemetry::decrement_counter(const Counter& id) {
768769

769770
void Telemetry::decrement_counter(const Counter& id,
770771
const std::vector<std::string>& tags) {
772+
std::lock_guard l{counter_mutex_};
771773
if (shutting_down_.load(std::memory_order_acquire)) {
772774
return;
773775
}
774-
std::lock_guard l{counter_mutex_};
775776
auto& v = counters_[{id, tags}];
776777
if (v > 0) v -= 1;
777778
}
@@ -783,10 +784,10 @@ void Telemetry::set_counter(const Counter& id, uint64_t value) {
783784
void Telemetry::set_counter(const Counter& id,
784785
const std::vector<std::string>& tags,
785786
uint64_t value) {
787+
std::lock_guard l{counter_mutex_};
786788
if (shutting_down_.load(std::memory_order_acquire)) {
787789
return;
788790
}
789-
std::lock_guard l{counter_mutex_};
790791
counters_[{id, tags}] = value;
791792
}
792793

@@ -796,10 +797,10 @@ void Telemetry::set_rate(const Rate& id, uint64_t value) {
796797

797798
void Telemetry::set_rate(const Rate& id, const std::vector<std::string>& tags,
798799
uint64_t value) {
800+
std::lock_guard l{rate_mutex_};
799801
if (shutting_down_.load(std::memory_order_acquire)) {
800802
return;
801803
}
802-
std::lock_guard l{rate_mutex_};
803804
rates_[{id, tags}] = value;
804805
}
805806

@@ -810,10 +811,10 @@ void Telemetry::add_datapoint(const Distribution& id, uint64_t value) {
810811
void Telemetry::add_datapoint(const Distribution& id,
811812
const std::vector<std::string>& tags,
812813
uint64_t value) {
814+
std::lock_guard l{distributions_mutex_};
813815
if (shutting_down_.load(std::memory_order_acquire)) {
814816
return;
815817
}
816-
std::lock_guard l{distributions_mutex_};
817818
distributions_[{id, tags}].emplace_back(value);
818819
}
819820

0 commit comments

Comments
 (0)