The deadlock happens because the channel is empty, so the receive operation
blocks forever.

The second version imports a package that may start new goroutines in its
init functions. If so, those goroutines may not be deadlocked, but the main
function is still blocked on the receive operation.

It can be useful to send SIGQUIT to a blocked Go program to dump the
goroutine stack traces to the terminal.

S

On Thu, Feb 28, 2019 at 4:19 AM <mountain...@gmail.com> wrote:

> dead lock:
>
> package main
>
> import (
>     "fmt"
>     // _ "github.com/go-sql-driver/mysql"
> )
>
> func main() {
>     c1 := make(chan int, 10)
>     fmt.Println(<-c1)
> }
>
>
> block:
>
> package main
>
> import (
>     "fmt"
>
>     _ "github.com/go-sql-driver/mysql"
> )
>
> func main() {
>     c1 := make(chan int, 10)
>     fmt.Println(<-c1)
> }
>
> --
> You received this message because you are subscribed to the Google Groups
> "golang-nuts" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to golang-nuts+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to