We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents ac7704d + 7b8f67d commit a210b4dCopy full SHA for a210b4d
1 file changed
backend/pkg/taskflow/shell.go
@@ -29,15 +29,25 @@ func (s *Shell) startPing() {
29
s.mu.Unlock()
30
return
31
}
32
- s.pingTicker = time.NewTicker(15 * time.Second)
+ ticker := time.NewTicker(15 * time.Second)
33
+ s.pingTicker = ticker
34
35
- go func() {
36
+ go func(ticker *time.Ticker) {
37
+ defer func() {
38
+ ticker.Stop()
39
+ s.mu.Lock()
40
+ if s.pingTicker == ticker {
41
+ s.pingTicker = nil
42
+ }
43
+ s.mu.Unlock()
44
+ }()
45
+
46
for {
47
select {
48
case <-s.ctx.Done():
49
- case <-s.pingTicker.C:
50
+ case <-ticker.C:
51
s.mu.Lock()
52
conn := s.conn
53
@@ -56,7 +66,7 @@ func (s *Shell) startPing() {
56
66
cancel()
57
67
58
68
59
- }()
69
+ }(ticker)
60
70
61
71
62
72
func (s *Shell) reconnect(ctx context.Context) error {
0 commit comments