Commit 2fe840f4 authored by Dmitriy Vyukov's avatar Dmitriy Vyukov

runtime: fix false positive deadlock when using runtime.Goexit

Fixes #4893.
Actually it's fixed by cl/7314062 (improved scheduler),
just submitting the test.

R=golang-dev, rsc
CC=golang-dev
https://golang.org/cl/7422054
parent d0c11d20
......@@ -91,6 +91,14 @@ func TestLockedDeadlock2(t *testing.T) {
testDeadlock(t, lockedDeadlockSource2)
}
func TestGoexitDeadlock(t *testing.T) {
got := executeTest(t, goexitDeadlockSource, nil)
want := ""
if got != want {
t.Fatalf("expected %q, but got %q", want, got)
}
}
const crashSource = `
package main
......@@ -175,3 +183,21 @@ func main() {
select {}
}
`
const goexitDeadlockSource = `
package main
import (
"runtime"
)
func F() {
for i := 0; i < 10; i++ {
}
}
func main() {
go F()
go F()
runtime.Goexit()
}
`
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment