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  }