Reuse channels

store a cache of the channels so a single pid can re-use a connection
this needs to be per pid as when you fork you keep the original memory
space and we can't control currency across pids
Update comment
Merge pull request #10298 from jacksontj/channelreuse

Reuse channels