super();
if (config != null) {
try {
this.config = config.clone();
} catch (CloneNotSupportedException ex) {
throw new IOReactorException("Unable to clone configuration");
}
} else {
this.config = new IOReactorConfig();
}
this.params = new BasicHttpParams();
try {
this.selector = Selector.open();
} catch (IOException ex) {
throw new IOReactorException("Failure opening selector", ex);
}
this.selectTimeout = this.config.getSelectInterval();
this.interestOpsQueueing = this.config.isInterestOpQueued();
this.statusLock = new Object();
if (threadFactory != null) {