X Tutup
Skip to content

Commit 2406f3f

Browse files
committed
Fix races and remove unreachable code
1 parent 7ba2fb4 commit 2406f3f

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

pkg/liveshare/session.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,15 +114,14 @@ func (s *Session) heartbeat(ctx context.Context, interval time.Duration) {
114114
case <-ctx.Done():
115115
return
116116
case <-ticker.C:
117-
s.logger.Println("Running session heartbeat")
117+
s.logger.Println("Heartbeat tick")
118118
reason := <-s.keepAliveReason
119119
s.logger.Println("Keep alive reason: " + reason)
120120
if err := s.notifyHostOfActivity(ctx, reason); err != nil {
121121
s.logger.Printf("Failed to notify host of activity: %s\n", err)
122122
}
123123
}
124124
}
125-
s.logger.Println("Ending session heartbeat")
126125
}
127126

128127
// notifyHostOfActivity notifies the Live Share host of client activity.

pkg/liveshare/session_test.go

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import (
88
"errors"
99
"fmt"
1010
"strings"
11+
"sync"
1112
"testing"
1213
"time"
1314

@@ -295,9 +296,14 @@ func TestNotifyHostOfActivity(t *testing.T) {
295296
}
296297

297298
func TestSessionHeartbeat(t *testing.T) {
298-
var requests int
299+
var (
300+
requestsMu sync.Mutex
301+
requests int
302+
)
299303
notifyHostOfActivity := func(rpcReq *jsonrpc2.Request) (interface{}, error) {
304+
requestsMu.Lock()
300305
requests++
306+
requestsMu.Unlock()
301307

302308
var req []interface{}
303309
if err := json.Unmarshal(*rpcReq.Params, &req); err != nil {
@@ -369,21 +375,28 @@ func TestSessionHeartbeat(t *testing.T) {
369375
}
370376

371377
type mockLogger struct {
378+
sync.Mutex
372379
buf *bytes.Buffer
373380
}
374381

375382
func newMockLogger() *mockLogger {
376-
return &mockLogger{new(bytes.Buffer)}
383+
return &mockLogger{buf: new(bytes.Buffer)}
377384
}
378385

379386
func (m *mockLogger) Printf(format string, v ...interface{}) (int, error) {
387+
m.Lock()
388+
defer m.Unlock()
380389
return m.buf.WriteString(fmt.Sprintf(format, v...))
381390
}
382391

383392
func (m *mockLogger) Println(v ...interface{}) (int, error) {
393+
m.Lock()
394+
defer m.Unlock()
384395
return m.buf.WriteString(fmt.Sprintln(v...))
385396
}
386397

387398
func (m *mockLogger) String() string {
399+
m.Lock()
400+
defer m.Unlock()
388401
return m.buf.String()
389402
}

0 commit comments

Comments
 (0)
X Tutup