'There is a nice state diagram at the top of http_client.py.  It
indicates that once the response headers have been read (which
_mexe does before adding the connection to the pool), a
response is attached to the connection, and it stays there
until it\'s done reading.  This isn\'t entirely true: even after
the client is done reading, the response may be closed, but
not removed from the connection yet.
This is ugly, reading a private instance variable, but the
state we care about isn\'t available in any public methods.'

def _conn_ready(self, conn):

    if ON_APP_ENGINE:
        return False
    else:
        response = getattr(conn, '_HTTPConnection__response', None)
        return ((response is None) or response.isclosed())
