dannycoates/poolee — pull request #9 by dannycoates (2012-11-28 00:17:50+00:00)
Title: rewrote the ping logic to fix several ping related issues

The previous code would ping too frequently and could get stuck
in a ping loop, even if the endpoint was actually healthy.

The new code factors out the ping logic into its own module. The
logic for setting the endpoint health has be constrained to exactly
two locations, one for setting as healthy and one for unhealthy.

Pinger ensures that only one ping request is pending at a given time
and that the ping loop is independent of other timeouts. The pinger
uses exponential backoff for timing ping requests with a maximum
delay of 10s.

The tests were updated for the new behavior.