Maybe I'm wrong here in my understanding of unbuffered channels, but I don't think so:
Matt says earlier: "Only a buffered channel can "hold" anything. If the channel is unbuffered, then you are guaranteed that another goroutine has at least received the item you sent when the send statement returns." I think at least in the simple case of `channel <- fd` this cannot be true, since that operation can only fail by panicking, and I beleive it will only panic if the channel is nil or closed. Now if you used a non-blocking send with a select, that would be a different story. So if you send over that channel it blocks the receiver wakes and runs the select but sees both channels ready picks the timeout channel at random Now one of two things must happen, either the sender blocks forever because nobody read the sent value, or the value gets lost to space and both receiver and sender continue on their merry ways. Am I wrong? -Dan -- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CADz32d%3DOm96%2B7iZet%3DDL0AaNxYVYWO6Q%3DOgvzoYiWKdZpSipHg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.