'Send a kill cursors message soon with the given id.
Raises :class:`TypeError` if `cursor_id` is not an instance of
``(int, long)``. What closing the cursor actually means
depends on this client\'s cursor manager.
This method may be called from a :class:`~pymongo.cursor.Cursor`
destructor during garbage collection, so it isn\'t safe to take a
lock or do network I/O. Instead, we schedule the cursor to be closed
soon on a background thread.
:Parameters:
- `cursor_id`: id of cursor to close
- `address` (optional): (host, port) pair of the cursor\'s server.
If it is not provided, the client attempts to close the cursor on
the primary or standalone, or a mongos server.
.. versionchanged:: 3.0
Added ``address`` parameter.'

def close_cursor(self, cursor_id, address=None):

    if (not isinstance(cursor_id, integer_types)):
        raise TypeError('cursor_id    must    be    an    instance    of    (int,    long)')
    if (self.__cursor_manager is not None):
        self.__cursor_manager.close(cursor_id, address)
    else:
        self.__kill_cursors_queue.append((address, [cursor_id]))
