aboutsummaryrefslogtreecommitdiff
path: root/src/runtime/trace.go
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2016-08-08 16:17:14 +0200
committerDmitry Vyukov <dvyukov@google.com>2016-09-02 19:14:11 +0000
commitcd285f1c6fc613fa0f097443ae1d21d6c4491386 (patch)
tree982e61e8e4724c245a5c44a3de22da4ffad8b9a0 /src/runtime/trace.go
parent59877bfaaf0778d4cc2cbaf06cf5030144271349 (diff)
downloadgo-cd285f1c6fc613fa0f097443ae1d21d6c4491386.tar.gz
go-cd285f1c6fc613fa0f097443ae1d21d6c4491386.zip
runtime: fix global buffer reset in StopTrace
We reset global buffer only if its pos != 0. We ought to do it always, but queue it only if pos != 0. This is a latent bug. Currently it does not fire because whenever we create a global buffer, we increment pos. Change-Id: I01e28ae88ce9a5412497c524391b8b7cb443ffd9 Reviewed-on: https://go-review.googlesource.com/25574 Run-TryBot: Dmitry Vyukov <dvyukov@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Austin Clements <austin@google.com>
Diffstat (limited to 'src/runtime/trace.go')
-rw-r--r--src/runtime/trace.go6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/runtime/trace.go b/src/runtime/trace.go
index 436f31dc2e..0b3741fa70 100644
--- a/src/runtime/trace.go
+++ b/src/runtime/trace.go
@@ -262,10 +262,12 @@ func StopTrace() {
p.tracebuf = 0
}
}
- if trace.buf != 0 && trace.buf.ptr().pos != 0 {
+ if trace.buf != 0 {
buf := trace.buf
trace.buf = 0
- traceFullQueue(buf)
+ if buf.ptr().pos != 0 {
+ traceFullQueue(buf)
+ }
}
for {