metrics: using atomic.Pointer

This commit is contained in:
cuiweixie 2025-08-07 11:39:44 +08:00
parent 59405c40d3
commit f543bbf6ad

View file

@ -14,7 +14,7 @@ func getOrRegisterRuntimeHistogram(name string, scale float64, r Registry) *runt
// runtimeHistogram wraps a runtime/metrics histogram. // runtimeHistogram wraps a runtime/metrics histogram.
type runtimeHistogram struct { type runtimeHistogram struct {
v atomic.Value // v is a pointer to a metrics.Float64Histogram v atomic.Pointer[metrics.Float64Histogram] // v is a pointer to a metrics.Float64Histogram
scaleFactor float64 scaleFactor float64
} }
@ -58,7 +58,7 @@ func (h *runtimeHistogram) Update(int64) {
// Snapshot returns a non-changing copy of the histogram. // Snapshot returns a non-changing copy of the histogram.
func (h *runtimeHistogram) Snapshot() HistogramSnapshot { func (h *runtimeHistogram) Snapshot() HistogramSnapshot {
hist := h.v.Load().(*metrics.Float64Histogram) hist := h.v.Load()
return newRuntimeHistogramSnapshot(hist) return newRuntimeHistogramSnapshot(hist)
} }