code: @Override
  	public void close() {
  		Thread t = new ClassThreadFactory(InternalQueue.class).newThread(new Runnable() {
  			@Override
  			public void run() {
  				try {
  					Thread.sleep((long) (WAIT_ON_CLOSE * 1000d));
  				} catch (InterruptedException ie) {
  				}
  				try {
  					selector.close();
  				} catch (IOException e) {
  				}
  				selector.wakeup();
  			}
  		});
  		
  		t.setDaemon(true);
  		t.start();
  	}
docs: /*%%
  @Override
  public void waitFor() {
  Wait w = new Wait();
  execute(w);
  w.waitFor();
  }