Great. Thank you. I fixed it by adding a second channel to indicate worker success.
On Friday, August 5, 2016 at 3:47:09 PM UTC-7, Dave Cheney wrote: > > Your program exits because the channel is buffered, so the main goroutine > exits immediately once it has sent the value to the channel. Once the main > goroutine returns, the program will exit. > > On Saturday, 6 August 2016 08:38:54 UTC+10, Jon Strauss wrote: >> >> Hello, >> I have the following code: >> >> package main >> >> import "fmt" >> import "encoding/hex" >> import "os" >> >> func main() { >> var bytes []byte >> var channel chan []byte >> >> file,_ := os.OpenFile("/dev/random", os.O_RDONLY, 0) >> bytes = make([]byte,20) >> _, _ = file.Read(bytes) >> >> channel = make(chan []byte,1) >> go worker(channel) >> channel <- bytes >> } >> >> func worker(channel chan []byte) { >> var dest string >> >> bytes := <-channel >> dest = hex.EncodeToString(bytes) >> fmt.Println(dest) >> >> >> } >> >> >> Instead of printing a hex string the program simply exits. What am I >> doing wrong? >> -William >> > -- 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.