bugfix: service has a Start func
We were issuing handling goroutines in both NewService and Start
Juan Batiz-Benet committed
Sep 15, 2014 at 16:30 UTC
cb230b69a2a3f6c1d603272b767e9282881973b9
3 files changed
+30
-12
bitswap/transmission/service_wrapper.go
+2
-1
@@ -11,7 +11,8 @@ import (
11
12
func NewServiceWrapper(ctx context.Context, r Receiver) Sender {
13
h := &handlerWrapper{r}
14
- s := netservice.NewService(ctx, h)
14
+ s := netservice.NewService(h)
15
+ s.Start(ctx)
16
return &senderWrapper{s}
17
}
18
net/service/service.go
+2
-6
@@ -37,16 +37,12 @@ type Service struct {
37
}
38
39
// NewService creates a service object with given type ID and Handler
40
-func NewService(ctx context.Context, h Handler) *Service {
41
- s := &Service{
40
+func NewService(h Handler) *Service {
41
+ return &Service{
42
Handler: h,
43
Requests: RequestMap{},
44
Pipe: msg.NewPipe(10),
45
}
46
-
47
- go s.handleIncomingMessages(ctx)
48
-
49
- return s
46
}
47
48
// Start kicks off the Service goroutines.
net/service/service_test.go
+26
-5
@@ -39,9 +39,13 @@ func newPeer(t *testing.T, id string) *peer.Peer {
39
func TestServiceHandler(t *testing.T) {
40
ctx := context.Background()
41
h := &ReverseHandler{}
42
- s := NewService(ctx, h)
42
+ s := NewService(h)
43
peer1 := newPeer(t, "11140beec7b5ea3f0fdbc95d0dd47f3c5bc275aaaaaa")
44
45
+ if err := s.Start(ctx); err != nil {
46
+ t.Error(err)
47
+ }
48
+
49
d, err := wrapData([]byte("beep"), nil)
50
if err != nil {
51
t.Error(err)
@@ -67,8 +71,17 @@ func TestServiceHandler(t *testing.T) {
71
72
func TestServiceRequest(t *testing.T) {
73
ctx := context.Background()
70
- s1 := NewService(ctx, &ReverseHandler{})
71
- s2 := NewService(ctx, &ReverseHandler{})
74
+ s1 := NewService(&ReverseHandler{})
75
+ s2 := NewService(&ReverseHandler{})
76
+
77
+ if err := s1.Start(ctx); err != nil {
78
+ t.Error(err)
79
+ }
80
+
81
+ if err := s2.Start(ctx); err != nil {
82
+ t.Error(err)
83
+ }
84
+
85
peer1 := newPeer(t, "11140beec7b5ea3f0fdbc95d0dd47f3c5bc275aaaaaa")
86
87
// patch services together
@@ -98,10 +111,18 @@ func TestServiceRequest(t *testing.T) {
111
112
func TestServiceRequestTimeout(t *testing.T) {
113
ctx, _ := context.WithTimeout(context.Background(), time.Millisecond)
101
- s1 := NewService(ctx, &ReverseHandler{})
102
- s2 := NewService(ctx, &ReverseHandler{})
114
+ s1 := NewService(&ReverseHandler{})
115
+ s2 := NewService(&ReverseHandler{})
116
peer1 := newPeer(t, "11140beec7b5ea3f0fdbc95d0dd47f3c5bc275aaaaaa")
117
118
+ if err := s1.Start(ctx); err != nil {
119
+ t.Error(err)
120
+ }
121
+
122
+ if err := s2.Start(ctx); err != nil {
123
+ t.Error(err)
124
+ }
125
+
126
// patch services together
127
go func() {
128
for {