@cryptotaxi247 / kubo / commits / cb230b69a

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 {