public void run() {
		Frame frame;
		try {
			while(!consumerError & ((frame = frameReader.readFrame()) != null && transceiver.isConsuming())) {
				frameBuffer.enbuf(frame);
			}
		}
		catch(InterruptedException e) {
			// shutdown in progress
			Fluid.error("ReadingEngine: Interrupted", 2);
		}
		catch(IOException e) {
			Fluid.error(e, 2);
			transceiver.producerError(e);
		}
		transceiver.unregisterProducer(readingEngine);
	}