@@ -23,7 +23,6 @@ import (
23
23
"fmt"
24
24
"io"
25
25
"sync"
26
- "sync/atomic"
27
26
"time"
28
27
29
28
"github.com/google/gopacket"
@@ -59,7 +58,7 @@ type GoPacketProbe struct {
59
58
Ctx Context
60
59
n * graph.Node
61
60
packetProbe PacketProbe
62
- state int64
61
+ state common. ServiceState
63
62
ifName string
64
63
bpfFilter string
65
64
nsPath string
@@ -88,7 +87,7 @@ func (p *GoPacketProbe) updateStats(g *graph.Graph, n *graph.Node, captureStats
88
87
case <- ticker .C :
89
88
if stats , err := p .packetProbe .Stats (); err != nil {
90
89
p .Ctx .Logger .Error (err )
91
- } else if atomic . LoadInt64 ( & p .state ) == common .RunningState {
90
+ } else if p .state . Load ( ) == common .RunningState {
92
91
g .Lock ()
93
92
g .UpdateMetadata (n , "Captures" , func (obj interface {}) bool {
94
93
captureStats .PacketsDropped = stats .PacketsDropped
@@ -108,7 +107,7 @@ func (p *GoPacketProbe) listen(packetCallback func(gopacket.Packet)) error {
108
107
packetSource := p .packetProbe .PacketSource ()
109
108
110
109
var errs int
111
- for atomic . LoadInt64 ( & p .state ) == common .RunningState {
110
+ for p .state . Load ( ) == common .RunningState {
112
111
packet , err := packetSource .NextPacket ()
113
112
switch err {
114
113
case nil :
@@ -139,7 +138,7 @@ func (p *GoPacketProbe) listen(packetCallback func(gopacket.Packet)) error {
139
138
// Run starts capturing packet, calling the passed callback for every packet
140
139
// and notifying the flow probe handler when the capture has started
141
140
func (p * GoPacketProbe ) Run (packetCallback func (gopacket.Packet ), e ProbeEventHandler ) error {
142
- atomic . StoreInt64 ( & p .state , common .RunningState )
141
+ p .state . Store ( common .RunningState )
143
142
144
143
var nsContext * common.NetNSContext
145
144
var err error
@@ -199,14 +198,14 @@ func (p *GoPacketProbe) Run(packetCallback func(gopacket.Packet), e ProbeEventHa
199
198
statsTicker .Stop ()
200
199
201
200
p .packetProbe .Close ()
202
- atomic . StoreInt64 ( & p .state , common .StoppedState )
201
+ p .state . Store ( common .StoppedState )
203
202
204
203
return err
205
204
}
206
205
207
206
// Stop capturing packets
208
207
func (p * GoPacketProbe ) Stop () {
209
- atomic . StoreInt64 ( & p .state , common .StoppingState )
208
+ p .state . Store ( common .StoppingState )
210
209
}
211
210
212
211
// NewGoPacketProbe returns a new Gopacket flow probe. It can use either `pcap` or `afpacket`
0 commit comments