github.com/DARA-Project/GoDist-Scheduler@v0.0.0-20201030134746-668de4acea0d/examples/Deadlock_test/Deadlock.go (about) 1 package main 2 3 import ( 4 "sync" 5 ) 6 7 var mux sync.Mutex 8 var comm chan int 9 var comm_main chan int 10 11 func goroutine1() { 12 mux.Lock() 13 comm <- 1 14 mux.Unlock() 15 } 16 17 func goroutine2() { 18 for { 19 mux.Lock() 20 mux.Unlock() 21 <- comm 22 } 23 } 24 25 func main() { 26 comm_main = make(chan int, 2) 27 comm = make(chan int, 1) 28 go goroutine1() 29 go goroutine2() 30 <- comm_main 31 <- comm_main 32 }