@Override
	public void run() {
		while (!stop) {
			DataVector<O> output = process();
			
			List<O> list = output.getVector();
			if (list==null || list.size()==0) {
				stop=true;
			} else {
				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);
					}
				}
			}
		}
		stop();
	}