protected void runLoop(int i) throws Exception{
			log.info("going into selector");
			int	numKeys = selector.select();
			if(i > 1 && numKeys > 0)
				throw new RuntimeException("Failure as we should not pop out of " +
						"the selector when i > 1 except on shutdown which should have 0 keys");
			if(shutdown)
				return;
			
			log.info("coming out with keys="+numKeys);
			Set<SelectionKey> keySet = selector.selectedKeys();
			log.info("keySet size="+keySet.size());
			
			Iterator<SelectionKey> iter = keySet.iterator();	
			SelectionKey theKey = iter.next();
			log.info(i+": in loop iter.next="+theKey+" isVal="+theKey.isValid()+
					" acc="+theKey.isAcceptable()+" read="+theKey.isReadable());
			if(theKey.isAcceptable()) {
				clientChannels[i] = serverChannel.accept();
				synchronized(this) {
					if(i >= 1) {
						acceptedBothSockets = true;
						this.notifyAll();
					}
				}
			}
			if(iter.hasNext())
				throw new RuntimeException("Should only have one key");
			
			log.info(i+":first channel="+clientChannels[i]);		
		}