in provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/TcpTransport.java [195:241]
public void _start(Runnable onCompleted) {
try {
if (socketState.isConnecting()) {
trace("connecting...");
// this allows the connect to complete...
readSource = Dispatch.createSource(channel, SelectionKey.OP_CONNECT, dispatchQueue);
readSource.setEventHandler(new Runnable() {
public void run() {
if (!(getServiceState().isStarted())) {
return;
}
try {
trace("connected.");
channel.finishConnect();
readSource.setCancelHandler(null);
readSource.cancel();
readSource = null;
socketState = new CONNECTED();
onConnected();
} catch (IOException e) {
onTransportFailure(e);
}
}
});
readSource.setCancelHandler(CANCEL_HANDLER);
readSource.resume();
} else if (socketState.isConnected()) {
dispatchQueue.execute(new Runnable() {
public void run() {
try {
trace("was connected.");
onConnected();
} catch (IOException e) {
onTransportFailure(e);
}
}
});
} else {
System.err.println("cannot be started. socket state is: "+socketState);
}
} finally {
if( onCompleted!=null ) {
onCompleted.run();
}
}
}