public void close()
	{

		shutdownRequested=true;
		executor.shutdown();
		try
		{
			servSelector.close();
		}catch(final Exception e){} // ugh, why can't there be an "i don't care" exception syntax in java
		for(final ServerSocketChannel servChan : servChannels.keySet())
		{
			try
			{
				servChan.close();
			}catch(final Exception e){}
		}
		if(!executor.isShutdown())
		{
			try
			{
				executor.awaitTermination(10, TimeUnit.SECONDS);
			}
			catch (final InterruptedException e)
			{
				executor.shutdownNow();
			}
		}
		if(timeoutThread != null)
		{
			timeoutThread.interrupt();
		}
		synchronized(handlers)
		{
			for(final HTTPIOHandler handler : handlers)
			{
				handler.closeAndWait();
			}
			handlers.clear();
		}
	}