@@ -22,7 +22,6 @@ import (
22
22
"sync"
23
23
"sync/atomic"
24
24
"time"
25
- "unsafe"
26
25
27
26
"github.com/go-logr/logr"
28
27
corev1 "k8s.io/api/core/v1"
@@ -36,8 +35,8 @@ const (
36
35
)
37
36
38
37
type podMetrics struct {
39
- pod unsafe .Pointer // stores a * Pod
40
- metrics unsafe .Pointer // stores a * Metrics
38
+ pod atomic .Pointer [ Pod ]
39
+ metrics atomic .Pointer [ Metrics ]
41
40
pmc PodMetricsClient
42
41
ds Datastore
43
42
interval time.Duration
@@ -58,15 +57,15 @@ func (pm *podMetrics) String() string {
58
57
}
59
58
60
59
func (pm * podMetrics ) GetPod () * Pod {
61
- return ( * Pod )( atomic . LoadPointer ( & pm .pod ) )
60
+ return pm .pod . Load ( )
62
61
}
63
62
64
63
func (pm * podMetrics ) GetMetrics () * Metrics {
65
- return ( * Metrics )( atomic . LoadPointer ( & pm .metrics ) )
64
+ return pm .metrics . Load ( )
66
65
}
67
66
68
67
func (pm * podMetrics ) UpdatePod (in * corev1.Pod ) {
69
- atomic . StorePointer ( & pm .pod , unsafe . Pointer (toInternalPod (in ) ))
68
+ pm .pod . Store (toInternalPod (in ))
70
69
}
71
70
72
71
func toInternalPod (in * corev1.Pod ) * Pod {
@@ -125,7 +124,7 @@ func (pm *podMetrics) refreshMetrics() error {
125
124
126
125
pm .logger .V (logutil .TRACE ).Info ("Refreshed metrics" , "updated" , updated )
127
126
128
- atomic . StorePointer ( & pm .metrics , unsafe . Pointer (updated ) )
127
+ pm .metrics . Store (updated )
129
128
return nil
130
129
}
131
130
0 commit comments