Skip to content

Commit f77cc32

Browse files
authored
Handle race condition where events are reported out of order (#115)
1 parent 9eb386b commit f77cc32

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

pkg/heartbeat/app.go

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import (
66
"encoding/json"
77
"fmt"
88
"net/http"
9+
"sync"
910
"time"
1011

1112
"github.com/pkg/errors"
@@ -19,6 +20,8 @@ import (
1920
"k8s.io/client-go/kubernetes"
2021
)
2122

23+
var heartbeatMtx sync.Mutex
24+
2225
func SendAppHeartbeat(clientset kubernetes.Interface, sdkStore store.Store) error {
2326
license := sdkStore.GetLicense()
2427

@@ -30,6 +33,13 @@ func SendAppHeartbeat(clientset kubernetes.Interface, sdkStore store.Store) erro
3033
return nil
3134
}
3235

36+
// make sure events are reported in order
37+
heartbeatMtx.Lock()
38+
defer func() {
39+
time.Sleep(1 * time.Second)
40+
heartbeatMtx.Unlock()
41+
}()
42+
3343
heartbeatInfo := GetHeartbeatInfo(sdkStore)
3444

3545
if util.IsAirgap() {

0 commit comments

Comments
 (0)