Results 236 comments of Matt Reiferson

Thanks for submitting this @Allenxuxu! The `Consumer` exit code is unfortunately extremely convoluted and delicate, and I'm not convinced this fully addresses the issue. I think what needs to happen...

I'm not sure this is sufficient. `Stop()` doesn't close `exitChan`, so `lookupdLoop()` and any single-connection reconnects will still be racing. We need to ensure they all return _before_ `exit()` gets...

Not sure if this is ready for review, but a few things as is: - Looks like the target `nsqd` are static in a `ProducerPool`, meaning if the list needs...

This diff is obviously fine, but let's finish discussing the design and architecture for this group of changes before landing.

Building on @ploxiln's feedback, I think the underlying problem with this implementation is that it's not a "registration". Perhaps we need a new command that represents a topic/channel "state change"?

this is looking good, thanks for your patience!

> Of course, another option would be adding a ConnDelegate slices into the existing Config, but I'm not sure how open is that for accepting behaviours instead of just values....

Yea, we couldn't return interfaces in the constructors without breaking compatibility, however we could _introduce_ new interfaces that could provide a mechanism for speccing that out and being used in...