aboutsummaryrefslogtreecommitdiff
path: root/internal/lsp/debug
diff options
context:
space:
mode:
authorIan Cottrell <iancottrell@google.com>2020-03-27 18:59:18 -0400
committerIan Cottrell <iancottrell@google.com>2020-03-30 19:15:27 +0000
commit657a652153b51184fc743971963d74b2b2eb1e0d (patch)
treeb2e8b31059895a965b7e63ec9e625ef6eeef7f3e /internal/lsp/debug
parentf8bfb4ee303835319bffacc74f182b6d1e06e4f6 (diff)
downloadgolang-x-tools-657a652153b51184fc743971963d74b2b2eb1e0d.tar.gz
internal/telemetry: add a synchronization to telemetry
Some things that used to be safe due to the global lock now need ther own synchronization primitives. Fixes golang/go#38102 Change-Id: I03c692682d57620d96fe84b7dc74efae0d3f8f09 Reviewed-on: https://go-review.googlesource.com/c/tools/+/226317 Run-TryBot: Ian Cottrell <iancottrell@google.com> Reviewed-by: Rebecca Stambler <rstambler@golang.org> Reviewed-by: Robert Findley <rfindley@google.com>
Diffstat (limited to 'internal/lsp/debug')
-rw-r--r--internal/lsp/debug/trace.go13
1 files changed, 7 insertions, 6 deletions
diff --git a/internal/lsp/debug/trace.go b/internal/lsp/debug/trace.go
index 53b499465..1ea83aee5 100644
--- a/internal/lsp/debug/trace.go
+++ b/internal/lsp/debug/trace.go
@@ -93,8 +93,8 @@ func (t *traces) ProcessEvent(ctx context.Context, ev event.Event, tags event.Ta
SpanID: span.ID.SpanID,
ParentID: span.ParentID,
Name: span.Name,
- Start: span.Start.At,
- Tags: renderTags(span.Start.Tags()),
+ Start: span.Start().At,
+ Tags: renderTags(span.Start().Tags()),
}
t.unfinished[span.ID] = td
// and wire up parents if we have them
@@ -117,10 +117,11 @@ func (t *traces) ProcessEvent(ctx context.Context, ev event.Event, tags event.Ta
}
delete(t.unfinished, span.ID)
- td.Finish = span.Finish.At
- td.Duration = span.Finish.At.Sub(span.Start.At)
- td.Events = make([]traceEvent, len(span.Events))
- for i, event := range span.Events {
+ td.Finish = span.Finish().At
+ td.Duration = span.Finish().At.Sub(span.Start().At)
+ events := span.Events()
+ td.Events = make([]traceEvent, len(events))
+ for i, event := range events {
td.Events[i] = traceEvent{
Time: event.At,
Tags: renderTags(event.Tags()),