public void enqueuePieces(int maxPieces, ManagedConnection mc){
		Iterator<Piece> itor = currentQueue.iterator();
		ConnectionWork cw = clientToPieceSet.get(mc);
		while(itor.hasNext()){
			Piece p = itor.next();
			if(cw.queued.size() +1 >maxPieces){
				break;
			}
			
			if(mc.getPeerBitmap().hasPiece((int)p.pieceIndex)){
				//TO ENSURE SAME PIECE IS SHARED IN MULTI-QUE CASES
				Piece piece = disseminatedPiecesToCompete.get((int)p.pieceIndex); 
				if(piece == null){
					piece = p;
				}
				List<ManagedConnection> lMC = pieceToClients.get((int)piece.pieceIndex);
				if(lMC==null){
					lMC=new ArrayList<ManagedConnection>();
				}
				lMC.add(mc);
				pieceToClients.put(piece, lMC);
				cw.queued.add(piece);
				cw.blockLeft.addAll(piece.getAllBlocksLeft());
				itor.remove();
				disseminatedPiecesToCompete.put((int)p.pieceIndex, p);
				
			}
		}
	}