runtime: restore "goroutine in C code" message

In the 1.9 upgrade I took out the word "goroutine" from a traceback
    showing a goroutine running in C code, to let TestCgoNumGoroutine
    pass.  However, it turns out that some code is actually checking for
    that string; for example,
    https://github.com/grpc/grpc-go/blob/master/test/leakcheck/leakcheck.go#L44
    So keep the message the same, and change the test.
    
    Reviewed-on: https://go-review.googlesource.com/64850

From-SVN: r252991
This commit is contained in:
Ian Lance Taylor 2017-09-20 00:33:29 +00:00
parent 9bd25fc4e2
commit 8fca13953b
3 changed files with 3 additions and 2 deletions

View File

@ -1,4 +1,4 @@
be69546afcac182cc93c569bc96665f0ef72d66a
5fb74cd7192123a9ea06dcae0d5d8d0b3538db8f
The first line of this file holds the git revision number of the last
merge done from the gofrontend repository.

View File

@ -75,6 +75,7 @@ func checkNumGoroutine(label string, want int) (string, bool) {
sbuf := make([]byte, 32<<10)
sbuf = sbuf[:runtime.Stack(sbuf, true)]
n = strings.Count(string(sbuf), "goroutine ")
n -= strings.Count(string(sbuf), "goroutine in C code")
if n != want {
fmt.Printf("%s Stack: want %d; got %d:\n%s\n", label, want, n, string(sbuf))
return "", false

View File

@ -216,7 +216,7 @@ func tracebackothers(me *g) {
print("\tgoroutine running on other thread; stack unavailable\n")
printcreatedby(gp)
} else if readgstatus(gp)&^_Gscan == _Gsyscall {
print("\tin C code; stack unavailable\n")
print("\tgoroutine in C code; stack unavailable\n")
printcreatedby(gp)
} else {
gp.traceback = &tb