'Destroys this HTTP client, freeing any file descriptors used.
This method is **not needed in normal use** due to the way
that `AsyncHTTPClient` objects are transparently reused.
``close()`` is generally only necessary when either the
`.IOLoop` is also being closed, or the ``force_instance=True``
argument was used when creating the `AsyncHTTPClient`.
No other methods may be called on the `AsyncHTTPClient` after
``close()``.'

def close(self):

    if self._closed:
        return
    self._closed = True
    if (self._instance_cache is not None):
        if (self._instance_cache.get(self.io_loop) is not self):
            raise RuntimeError('inconsistent    AsyncHTTPClient    cache')
        del self._instance_cache[self.io_loop]
