Description
After #10 was applied (which I agree with) I'm seeing behavior that confused me for a bit, and may confuse others.
manners relies on the socket open/close events to increment/decrement the WaitGroup counter. That makes sense.
If you use a reverse proxy, and that proxy uses keep-alive to reduce latency to the upstream, then this will cause manners to block until those keep-alive sockets are closed.
I noticed this when I was attempting a graceful shutdown of my Go process, and my signal handler logged the shutdown request normally, but the process never exited.
In my case I don't need keep-alive enabled on the reverse proxy, and disabling keep-alive fixed my shutdown issues. Others may run into this, so it may be worth a warning in the README.
Thanks, -- James