def METHOD_NAME (self, cause):
    '''
        A multithread safe call
        any thread can mark the current connection
        as not valid
        and will require the main thread to reconnect
    '''
    # avoid any messages handling for the async thread
    self.async_.set_as_zombie()
    # change state
    self.state = (self.MARK_FOR_DISCONNECT, cause)
    # if the flag is on, a SIGINT will be sent to the main thread
    # causing the ZMQ RPC to stop what it's doing and report an error
    if self.sigint_on_conn_lost:
        os.kill(os.getpid(), signal.SIGINT)