Skip to content

Commit e5e6690

Browse files
authored
chore: setup codecov and fix data race. (#69)
1 parent 9a0d333 commit e5e6690

File tree

5 files changed

+17
-6
lines changed

5 files changed

+17
-6
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,4 +24,4 @@ suppressions/
2424

2525
cmd/rsocket-cli/rsocket-cli
2626

27-
coverage.out
27+
coverage.txt

.travis.yml

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,16 @@ go:
77
env:
88
- GO111MODULE=on
99

10+
before_install:
11+
- go get -t -v ./...
12+
1013
install:
1114
- go get golang.org/x/lint/golint
1215
- curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.30.0
13-
- go get golang.org/x/tools/cmd/cover
14-
- go get github.com/mattn/goveralls
1516

1617
script:
1718
- golangci-lint run ./...
18-
- go test -v -covermode=atomic -coverprofile=coverage.out -count=1 ./...
19-
- goveralls -coverprofile=coverage.out -service=travis-ci -repotoken $COVERALLS_TOKEN
19+
- go test -race -coverprofile=coverage.txt -covermode=atomic ./...
20+
21+
after_success:
22+
- bash <(curl -s https://codecov.io/bash)

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
![logo](./logo.jpg)
33

44
[![Build Status](https://travis-ci.com/rsocket/rsocket-go.svg?branch=master)](https://travis-ci.com/rsocket/rsocket-go)
5-
[![Coverage Status](https://coveralls.io/repos/github/rsocket/rsocket-go/badge.svg?branch=master)](https://coveralls.io/github/rsocket/rsocket-go?branch=master)
5+
[![codecov](https://codecov.io/gh/rsocket/rsocket-go/branch/master/graph/badge.svg)](https://codecov.io/gh/rsocket/rsocket-go)
66
[![Go Report Card](https://goreportcard.com/badge/github.com/rsocket/rsocket-go)](https://goreportcard.com/report/github.com/rsocket/rsocket-go)
77
[![Slack](https://img.shields.io/badge/slack-rsocket--go-blue.svg)](https://rsocket.slack.com/messages/C9VGZ5MV3)
88
[![GoDoc](https://godoc.org/github.com/rsocket/rsocket-go?status.svg)](https://godoc.org/github.com/rsocket/rsocket-go)

core/transport/transport.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ const (
6060

6161
// Transport is RSocket transport which is used to carry RSocket frames.
6262
type Transport struct {
63+
sync.RWMutex
6364
conn Conn
6465
maxLifetime time.Duration
6566
lastRcvPos uint64
@@ -69,6 +70,8 @@ type Transport struct {
6970

7071
// Handle register event handlers
7172
func (p *Transport) Handle(event EventType, handler FrameHandler) {
73+
p.Lock()
74+
defer p.Unlock()
7275
p.handlers[int(event)] = handler
7376
}
7477

@@ -174,6 +177,9 @@ func (p *Transport) DispatchFrame(_ context.Context, frame core.Frame) (err erro
174177

175178
var handler FrameHandler
176179

180+
p.RLock()
181+
defer p.RUnlock()
182+
177183
switch t {
178184
case core.FrameTypeSetup:
179185
p.maxLifetime = frame.(*framing.SetupFrame).MaxLifetime()

internal/socket/duplex.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1018,7 +1018,9 @@ func (dc *DuplexConnection) drainOutBack() {
10181018
dc.outsPriority = dc.outsPriority[:0]
10191019
}()
10201020

1021+
dc.locker.RLock()
10211022
tp := dc.tp
1023+
dc.locker.RUnlock()
10221024
if tp == nil {
10231025
return
10241026
}

0 commit comments

Comments
 (0)