aboutsummaryrefslogtreecommitdiff
path: root/src/internal
diff options
context:
space:
mode:
authorHana Kim <hakim@google.com>2018-03-02 15:26:37 -0500
committerHyang-Ah Hana Kim <hyangah@gmail.com>2018-03-02 20:32:08 +0000
commitd3562c9db95e7dffaba457bb09ec685ad033a722 (patch)
tree242001a90fd357a10435f64dc0437f01b7773e99 /src/internal
parent16398894dccf06e34af8fb1c7cff6eed9b163057 (diff)
downloadgo-d3562c9db95e7dffaba457bb09ec685ad033a722.tar.xz
internal/trace: Revert "remove backlinks from span/task end to start"
This reverts commit 16398894dccf06e34af8fb1c7cff6eed9b163057. This broke TestUserTaskSpan test. Change-Id: If5ff8bdfe84e8cb30787b03ead87205ece3d5601 Reviewed-on: https://go-review.googlesource.com/98235 Reviewed-by: Heschi Kreinick <heschi@google.com>
Diffstat (limited to 'src/internal')
-rw-r--r--src/internal/trace/parser.go11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/internal/trace/parser.go b/src/internal/trace/parser.go
index 29ba73c761..155c23940a 100644
--- a/src/internal/trace/parser.go
+++ b/src/internal/trace/parser.go
@@ -56,7 +56,8 @@ type Event struct {
// for GoSysExit: the next GoStart
// for GCMarkAssistStart: the associated GCMarkAssistDone
// for UserTaskCreate: the UserTaskEnd
- // for UserSpan: if the start span, the corresponding UserSpan end event
+ // for UsetTaskEnd: the UserTaskCreate
+ // for UserSpan: the corresponding span start or end event
Link *Event
}
@@ -809,10 +810,9 @@ func postProcessTrace(ver int, events []*Event) error {
}
tasks[ev.Args[0]] = ev
case EvUserTaskEnd:
- taskid := ev.Args[0]
- if taskCreateEv, ok := tasks[taskid]; ok {
- taskCreateEv.Link = ev
- delete(tasks, taskid)
+ if prevEv, ok := tasks[ev.Args[0]]; ok {
+ prevEv.Link = ev
+ ev.Link = prevEv
}
case EvUserSpan:
mode := ev.Args[1]
@@ -828,6 +828,7 @@ func postProcessTrace(ver int, events []*Event) error {
}
// Link span start event with span end event
s.Link = ev
+ ev.Link = s
if n > 1 {
activeSpans[ev.G] = spans[:n-1]