Skip to content

Commit 3959ad4

Browse files
committed
all: remove go.lsp.dev/pkg dependency
Signed-off-by: Koichi Shiraishi <zchee.io@gmail.com>
1 parent b55d5d7 commit 3959ad4

File tree

5 files changed

+22
-88
lines changed

5 files changed

+22
-88
lines changed

conn.go

Lines changed: 5 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,6 @@ import (
1111
"sync/atomic"
1212

1313
"github.com/segmentio/encoding/json"
14-
15-
"go.lsp.dev/pkg/event"
16-
"go.lsp.dev/pkg/event/label"
17-
"go.lsp.dev/pkg/event/tag"
1814
)
1915

2016
// Conn is the common interface to jsonrpc clients and servers.
@@ -95,17 +91,6 @@ func (c *conn) Call(ctx context.Context, method string, params, result interface
9591
return id, fmt.Errorf("marshaling call parameters: %w", err)
9692
}
9793

98-
ctx, done := event.Start(ctx, method,
99-
tag.Method.Of(method),
100-
tag.RPCDirection.Of(tag.Outbound),
101-
tag.RPCID.Of(fmt.Sprintf("%q", id)),
102-
)
103-
defer func() {
104-
recordStatus(ctx, err)
105-
done()
106-
}()
107-
event.Metric(ctx, tag.Started.Of(1))
108-
10994
// We have to add ourselves to the pending map before we send, otherwise we
11095
// are racing the response. Also add a buffer to rchan, so that if we get a
11196
// wire response between the time this call is cancelled and id is deleted
@@ -123,8 +108,7 @@ func (c *conn) Call(ctx context.Context, method string, params, result interface
123108
}()
124109

125110
// now we are ready to send
126-
n, err := c.write(ctx, call)
127-
event.Metric(ctx, tag.SentBytes.Of(n))
111+
_, err = c.write(ctx, call)
128112
if err != nil {
129113
// sending failed, we will never get a response, so don't leave it pending
130114
return id, err
@@ -162,28 +146,13 @@ func (c *conn) Notify(ctx context.Context, method string, params interface{}) (e
162146
return fmt.Errorf("marshaling notify parameters: %w", err)
163147
}
164148

165-
ctx, done := event.Start(ctx, method,
166-
tag.Method.Of(method),
167-
tag.RPCDirection.Of(tag.Outbound),
168-
)
169-
defer func() {
170-
recordStatus(ctx, err)
171-
done()
172-
}()
173-
174-
event.Metric(ctx, tag.Started.Of(1))
175-
n, err := c.write(ctx, notify)
176-
event.Metric(ctx, tag.SentBytes.Of(n))
149+
_, err = c.write(ctx, notify)
177150

178151
return err
179152
}
180153

181154
func (c *conn) replier(req Message, spanDone func()) Replier {
182155
return func(ctx context.Context, result interface{}, err error) error {
183-
defer func() {
184-
recordStatus(ctx, err)
185-
spanDone()
186-
}()
187156
call, ok := req.(*Call)
188157
if !ok {
189158
// request was a notify, no need to respond
@@ -195,8 +164,7 @@ func (c *conn) replier(req Message, spanDone func()) Replier {
195164
return err
196165
}
197166

198-
n, err := c.write(ctx, response)
199-
event.Metric(ctx, tag.SentBytes.Of(n))
167+
_, err = c.write(ctx, response)
200168
if err != nil {
201169
// TODO(iancottrell): if a stream write fails, we really need to shut down the whole stream
202170
return err
@@ -226,7 +194,7 @@ func (c *conn) run(ctx context.Context, handler Handler) {
226194

227195
for {
228196
// get the next message
229-
msg, n, err := c.stream.Read(ctx)
197+
msg, _, err := c.stream.Read(ctx)
230198
if err != nil {
231199
// The stream failed, we cannot continue.
232200
c.fail(err)
@@ -235,27 +203,7 @@ func (c *conn) run(ctx context.Context, handler Handler) {
235203

236204
switch msg := msg.(type) {
237205
case Request:
238-
labels := []label.Label{
239-
tag.Method.Of(msg.Method()),
240-
tag.RPCDirection.Of(tag.Inbound),
241-
{}, // reserved for ID if present
242-
}
243-
if call, ok := msg.(*Call); ok {
244-
labels[len(labels)-1] = tag.RPCID.Of(fmt.Sprintf("%q", call.ID()))
245-
} else {
246-
labels = labels[:len(labels)-1]
247-
}
248-
249-
reqCtx, spanDone := event.Start(ctx, msg.Method(), labels...)
250-
event.Metric(reqCtx,
251-
tag.Started.Of(1),
252-
tag.ReceivedBytes.Of(n),
253-
)
254-
255-
if err := handler(reqCtx, c.replier(msg, spanDone), msg); err != nil {
256-
// delivery failed, not much we can do
257-
event.Error(reqCtx, "jsonrpc2 message delivery failed", err)
258-
}
206+
handler(ctx, c.replier(msg, func() {}), msg)
259207

260208
case *Response:
261209
// If method is not set, this should be a response, in which case we must
@@ -293,12 +241,3 @@ func (c *conn) fail(err error) {
293241
c.err.Store(err)
294242
c.stream.Close()
295243
}
296-
297-
// recordStatus records the status code based on the error.
298-
func recordStatus(ctx context.Context, err error) {
299-
if err != nil {
300-
event.Label(ctx, tag.StatusCode.Of("ERROR"))
301-
} else {
302-
event.Label(ctx, tag.StatusCode.Of("OK"))
303-
}
304-
}

go.mod

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
module go.lsp.dev/jsonrpc2
22

3-
go 1.16
3+
go 1.17
4+
5+
replace go.lsp.dev/pkg => ../pkg
6+
7+
require github.com/segmentio/encoding v0.3.4
48

59
require (
6-
github.com/segmentio/encoding v0.2.17
7-
go.lsp.dev/pkg v0.0.0-20210125030640-b6310ac75a91
10+
github.com/segmentio/asm v1.1.3 // indirect
11+
golang.org/x/sys v0.0.0-20211110154304-99a53858aa08 // indirect
812
)

go.sum

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
github.com/klauspost/cpuid/v2 v2.0.5 h1:qnfhwbFriwDIX51QncuNU5mEMf+6KE3t7O8V2KQl3Dg=
2-
github.com/klauspost/cpuid/v2 v2.0.5/go.mod h1:FInQzS24/EEf25PyTYn52gqo7WaD8xa0213Md/qVLRg=
3-
github.com/segmentio/encoding v0.2.17 h1:cgfmPc44u1po1lz5bSgF00gLCROBjDNc7h+H7I20zpc=
4-
github.com/segmentio/encoding v0.2.17/go.mod h1:7E68jTSWMnNoYhHi1JbLd7NBSB6XfE4vzqhR88hDBQc=
5-
go.lsp.dev/pkg v0.0.0-20210125030640-b6310ac75a91 h1:JPKNt/RzBcOc89rhZ4Vl6U05Y1nN37FAc8PTKE3hssk=
6-
go.lsp.dev/pkg v0.0.0-20210125030640-b6310ac75a91/go.mod h1:gtSHRuYfbCT0qnbLnovpie/WEmqyJ7T4n6VXiFMBtcw=
1+
github.com/segmentio/asm v1.1.3 h1:WM03sfUOENvvKexOLp+pCqgb/WDjsi7EK8gIsICtzhc=
2+
github.com/segmentio/asm v1.1.3/go.mod h1:Ld3L4ZXGNcSLRg4JBsZ3//1+f/TjYl0Mzen/DQy1EJg=
3+
github.com/segmentio/encoding v0.3.4 h1:WM4IBnxH8B9TakiM2QD5LyNl9JSndh88QbHqVC+Pauc=
4+
github.com/segmentio/encoding v0.3.4/go.mod h1:n0JeuIqEQrQoPDGsjo8UNd1iA0U8d8+oHAA4E3G3OxM=
5+
golang.org/x/sys v0.0.0-20211110154304-99a53858aa08 h1:WecRHqgE09JBkh/584XIE6PMz5KKE/vER4izNUi30AQ=
6+
golang.org/x/sys v0.0.0-20211110154304-99a53858aa08/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=

handler.go

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ import (
77
"context"
88
"fmt"
99
"sync"
10-
11-
"go.lsp.dev/pkg/event"
1210
)
1311

1412
// Handler is invoked to handle incoming requests.
@@ -111,13 +109,9 @@ func AsyncHandler(handler Handler) (h Handler) {
111109
return innerReply(ctx, result, err)
112110
}
113111

114-
_, queueDone := event.Start(ctx, "queued")
115112
go func() {
116113
<-waitForPrevious
117-
queueDone()
118-
if err := handler(ctx, reply, req); err != nil {
119-
event.Error(ctx, "jsonrpc2 async message delivery failed", err)
120-
}
114+
handler(ctx, reply, req)
121115
}()
122116
return nil
123117
})

serve.go

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,6 @@ import (
1111
"net"
1212
"os"
1313
"time"
14-
15-
"go.lsp.dev/pkg/event"
1614
)
1715

1816
// NOTE: This file provides an experimental API for serving multiple remote
@@ -114,10 +112,9 @@ func Serve(ctx context.Context, ln net.Listener, server StreamServer, idleTimeou
114112
case err := <-doneListening:
115113
return err
116114

117-
case err := <-closedConns:
118-
if !isClosingError(err) {
119-
event.Error(ctx, "closed a connection", err)
120-
}
115+
case <-closedConns:
116+
// if !isClosingError(err) {
117+
// }
121118

122119
activeConns--
123120
if activeConns == 0 {

0 commit comments

Comments
 (0)