@Override
	public void run() {
		BlockingDeque<I> queue = entry.getQueue();
		while (!stop) {
			I in = null;
			if (queue.size()>0) {
				in = entry.getQueue().removeLast();
			}
			if (in != null) {
				if (in.getPilot().isExtinguisher()) {
					stop();
					break;
				}
				DataVector<O> output = process(in);
				Iterator<O> iter = output.getVector().iterator();
				O data;
				for (Link<O> exit : exits) {
					try {
						if (iter.hasNext()) {
							data = iter.next();
							exit.getQueue().putFirst(data);
						} else {
							break;
						}
					} catch (InterruptedException ie) {
						logger.log(Level.WARNING,"Impossible to put a Data in an exit queue",ie);
					}
				}
			}
		}
	}