A nil channel blocks forever on send and receive operations, causing your program to hang indefinitely. To fix this, initialize the channel with make before using it.
ch := make(chan int)
If you need a channel that is always closed (for immediate non-blocking sends), initialize it as a nil channel and close it immediately, or use a buffered channel with capacity 0 if you need synchronization.