Skip to content

Commit 467294b

Browse files
Copilotbbockelm
andcommitted
Remove unnecessary atomics for total_time_s since it's protected by mutex
Co-authored-by: bbockelm <1093447+bbockelm@users.noreply.github.com>
1 parent 974ae7c commit 467294b

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

src/scitokens_internal.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ struct IssuerStats {
121121
std::atomic<uint64_t> successful_validations{0};
122122
std::atomic<uint64_t> unsuccessful_validations{0};
123123
std::atomic<uint64_t> expired_tokens{0};
124-
std::atomic<double> total_time_s{0.0}; // Total time in seconds
124+
double total_time_s{0.0}; // Total time in seconds - protected by mutex
125125
};
126126

127127
/**

src/scitokens_monitoring.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ void MonitoringStats::record_validation_success(const std::string &issuer,
2222
auto &stats = m_issuer_stats[issuer];
2323
stats.successful_validations++;
2424
// Add to the total time (accumulate across all validations)
25-
double current = stats.total_time_s.load();
26-
stats.total_time_s.store(current + duration_s);
25+
// No atomic needed - protected by mutex
26+
stats.total_time_s += duration_s;
2727
}
2828

2929
void MonitoringStats::record_validation_failure(const std::string &issuer,
@@ -32,8 +32,8 @@ void MonitoringStats::record_validation_failure(const std::string &issuer,
3232
auto &stats = m_issuer_stats[issuer];
3333
stats.unsuccessful_validations++;
3434
// Add to the total time (accumulate across all validations)
35-
double current = stats.total_time_s.load();
36-
stats.total_time_s.store(current + duration_s);
35+
// No atomic needed - protected by mutex
36+
stats.total_time_s += duration_s;
3737
}
3838

3939
void MonitoringStats::record_expired_token(const std::string &issuer) {
@@ -115,7 +115,7 @@ std::string MonitoringStats::get_json() const {
115115
issuer_obj["expired_tokens"] =
116116
picojson::value(static_cast<double>(stats.expired_tokens.load()));
117117
issuer_obj["total_validation_time_s"] =
118-
picojson::value(stats.total_time_s.load());
118+
picojson::value(stats.total_time_s);
119119

120120
std::string sanitized_issuer = sanitize_issuer_for_json(issuer);
121121
issuers_obj[sanitized_issuer] = picojson::value(issuer_obj);

0 commit comments

Comments
 (0)