Perfect. Thanks! On Wed, Jun 15, 2016, 12:44 PM Ian Lance Taylor <i...@golang.org> wrote:
> On Wed, Jun 15, 2016 at 12:25 PM, Eric Greer <integ...@gmail.com> wrote: > > > > Thanks for the reply. What I'm trying to do is to make a web socket > server > > where all clients are sent broadcast messages. When the client connects, > a > > channel is creates and registered in a global list of client channels. > When > > a client disconnects, the channel gets closed. The broadcaster does not > know > > and crashes. > > > > Is it possible to gracefully skip channels that are closed, or do I need > to > > create a registry of clients that have their own IDs mapped to a channel > so > > that I can prune them? I ended up doing it this way and I realize that > > leaving closed channels in the list is memory bloat over time, but it > would > > have saved a lot of time on this throw away program to just loop over a > > slice of channels. > > Closing a channel is a send operation. It's not closing a file or a > network connection. It's not necessary to close a channel. The only > reason to do so is to send a signal: that there will be no more data > on the channel. For the receiver of a channel to close it is wrong. > > You should keep the registry you mention, and at the point where today > you close the channel, you should instead remove the channel from the > registry. > > Ian > -- 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.