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")
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")