testdata, sync: add sync.Mutex test to testdata/coroutines.go
Этот коммит содержится в:
родитель
c54e1cc955
коммит
b4815192a6
2 изменённых файлов: 33 добавлений и 1 удалений
28
testdata/coroutines.go
предоставленный
28
testdata/coroutines.go
предоставленный
|
@ -1,6 +1,9 @@
|
||||||
package main
|
package main
|
||||||
|
|
||||||
import "time"
|
import (
|
||||||
|
"sync"
|
||||||
|
"time"
|
||||||
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
println("main 1")
|
println("main 1")
|
||||||
|
@ -51,6 +54,29 @@ func main() {
|
||||||
println("closure go call result:", x)
|
println("closure go call result:", x)
|
||||||
|
|
||||||
time.Sleep(2 * time.Millisecond)
|
time.Sleep(2 * time.Millisecond)
|
||||||
|
|
||||||
|
var m sync.Mutex
|
||||||
|
m.Lock()
|
||||||
|
println("pre-acquired mutex")
|
||||||
|
go acquire(&m)
|
||||||
|
time.Sleep(2 * time.Millisecond)
|
||||||
|
println("releasing mutex")
|
||||||
|
m.Unlock()
|
||||||
|
time.Sleep(2 * time.Millisecond)
|
||||||
|
m.Lock()
|
||||||
|
println("re-acquired mutex")
|
||||||
|
m.Unlock()
|
||||||
|
println("done")
|
||||||
|
|
||||||
|
time.Sleep(2 * time.Millisecond)
|
||||||
|
}
|
||||||
|
|
||||||
|
func acquire(m *sync.Mutex) {
|
||||||
|
m.Lock()
|
||||||
|
println("acquired mutex from goroutine")
|
||||||
|
time.Sleep(2 * time.Millisecond)
|
||||||
|
m.Unlock()
|
||||||
|
println("released mutex from goroutine")
|
||||||
}
|
}
|
||||||
|
|
||||||
func sub() {
|
func sub() {
|
||||||
|
|
6
testdata/coroutines.txt
предоставленный
6
testdata/coroutines.txt
предоставленный
|
@ -14,3 +14,9 @@ async interface method call
|
||||||
slept inside func pointer 8
|
slept inside func pointer 8
|
||||||
slept inside closure, with value: 20 8
|
slept inside closure, with value: 20 8
|
||||||
closure go call result: 1
|
closure go call result: 1
|
||||||
|
pre-acquired mutex
|
||||||
|
releasing mutex
|
||||||
|
acquired mutex from goroutine
|
||||||
|
released mutex from goroutine
|
||||||
|
re-acquired mutex
|
||||||
|
done
|
||||||
|
|
Загрузка…
Создание таблицы
Сослаться в новой задаче