getlantern/lantern#1895 Stopping old connection pool when restarting ser...

...ver
In production, the CPU would potentially spike under heavy activity if we exhausted the pool.  Here's the pseudocode for what it was doing on Get():

If pooled connection available, return that
Otherwise, return new connection and request filling of pool
Filling of pool would launch n goroutines where n = MinSize - currently pooled (i.e. 0)  If we assume MinSize = 30, that means we launch 30 goroutines to dial new connections

On the next Get(), we would do the same logic.  If this Get happened before any of the newly dialed connections was available, n would still equal 30 and we would launch 30 more goroutines.

You can see how this quickly leads to us doing a boatload of dialing.