Hi
I would like to write a non-blocking client based on the NIO extensions,
but encounter an issue, which could be reproduced with a modified
NHttpClient example code as follows:
I want to start off a ConnectingIOReactor, and leave it running
continuously. Now, whenever I want to send a request through this
reactor, I would want to execute something like
ioReactor.connect(
new InetSocketAddress("www.yahoo.com", 80),
null,
new HttpHost("www.yahoo.com"));
However, if I execute the above before I execute
ioReactor.execute(ioEventDispatch), i.e position 1, then everything
works fine. If I try it after (i.e. position 2) the outcome is
unpredictable - i.e. works sometimes, NPE, etc..
It is not clear to me why connecting to the reactor after its execute()
method is invoked should be any different..?
thanks
asankha
public static void main(String[] args) throws Exception {
HttpParams params = new DefaultHttpParams(null);
.....
NHttpClientHandler handler = new MyNHttpClientHandler(params);
final IOEventDispatch ioEventDispatch = new
DefaultClientIOEventDispatch(handler, params);
// position 1
Thread t = new Thread(new Runnable() {
public void run() {
try {
ioReactor.execute(ioEventDispatch);
} catch (Exception e) {
e.printStackTrace();
}
}
}
);
t.start();
// position 2
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]