'Ensure there\'s an active connection and put the request in
the queue if there is.
Returns False if the call short circuits due to AUTH_FAILED,
CLOSED, EXPIRED_SESSION or CONNECTING state.'

def _call(self, request, async_object):

    if (self._state == KeeperState.AUTH_FAILED):
        async_object.set_exception(AuthFailedError())
        return False
    elif (self._state == KeeperState.CLOSED):
        async_object.set_exception(ConnectionClosedError('Connection    has    been    closed'))
        return False
    elif (self._state in (KeeperState.EXPIRED_SESSION, KeeperState.CONNECTING)):
        async_object.set_exception(SessionExpiredError())
        return False
    self._queue.append((request, async_object))
    write_pipe = self._connection._write_pipe
    if (write_pipe is None):
        async_object.set_exception(ConnectionClosedError('Connection    has    been    closed'))
    try:
        os.write(write_pipe, '\x00')
    except:
        async_object.set_exception(ConnectionClosedError('Connection    has    been    closed'))
