diff options
author | Ian Cottrell <iancottrell@google.com> | 2020-03-27 18:59:18 -0400 |
---|---|---|
committer | Ian Cottrell <iancottrell@google.com> | 2020-03-30 19:15:27 +0000 |
commit | 657a652153b51184fc743971963d74b2b2eb1e0d (patch) | |
tree | b2e8b31059895a965b7e63ec9e625ef6eeef7f3e /internal/lsp/debug | |
parent | f8bfb4ee303835319bffacc74f182b6d1e06e4f6 (diff) | |
download | golang-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.go | 13 |
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()), |