Skip to content

Commit 758b3a9

Browse files
committed
[metric][fix] fix get_data may load unexpected data array
1 parent d5234a7 commit 758b3a9

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

include/ylt/metric/summary_impl.hpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -170,13 +170,14 @@ class summary_impl {
170170
};
171171

172172
data_t& get_data() {
173-
data_t* data = data_[frontend_data_index_];
173+
auto index = frontend_data_index_.load();
174+
data_t* data = data_[index];
174175
if (data == nullptr) [[unlikely]] {
175176
auto pointer = new data_t{};
176-
if (!data_[frontend_data_index_].compare_exchange_strong(data, pointer)) {
177+
if (!data_[index].compare_exchange_strong(data, pointer)) {
177178
delete pointer;
178179
}
179-
return *data_[frontend_data_index_];
180+
return *data_[index];
180181
}
181182
else {
182183
return *data;

0 commit comments

Comments
 (0)