Example #1
0
def error_transmitter():
    try:
        while True:
            synapse, error, reason = (yield)
            if synapse.is_active():
                synapse.err_response(Messages.error(error, reason))
                logs.logger.debug("error_transmitter: %s, %s, %s" % (synapse, error.__name__, reason))
    finally:
        logs.logger.debug("error_transmitter closed")
Example #2
0
def signal_filter(processor, err_sender):
    """ Collects and validates input messages from synapses """
    try:
        while True:
            synapse, data = (yield)
            try:
                logs.logger.debug("filters data from %s" % synapse)
                msg = Messages.deserialize(data)
            except ProtocolError, reason:
                # low-level protocol error (e.g transmission of '[1,2' )
                logs.logger.debug("filter error: %s,%s" % (synapse, reason))
                err_sender.send((synapse, ProtocolError, str(reason)))
            else:
                processor.send((synapse, msg))
    finally:
        logs.logger.debug("data filter closed")