Channel Blocking in doWork: When doWork runs, it tries to send a true value to the signal channel with signal <- true. This blocks if there is no available space in the channel buffer. This will cause the gorouting to block and cause the deadlock.