CompletionHandler should take the channel too

Alan Bateman Alan.Bateman at Sun.COM
Thu Apr 23 00:47:27 PDT 2009


Rémi Forax wrote:
> :
> I don't see why I have to create an ephemeral object to store a 
> channel and a buffer
> if the implementation already have this information but don't export it.
I don't think we can predict all the context that the handler will 
require when consuming the result. For some cases it may only be the 
channel and the buffer (or buffers). In other cases it will be the 
SSLSession or other session information. For non read/write methods may 
be the channel and something else.

>
> Else, there is no way to find the group from an async socket channel,
> something like:
> asyncSocketChannel().group().shutdown();
> should be useful.
The reason for this is that we don't want to give out a reference to the 
default group (because it can never be shutdown). I admit we need to 
re-visit this but it requires special-casing the default group so that 
it cannot be shutdown. I don't know if you read Alex and Yevgeny 
Libman's proposal on filters but that creates the requirement to get a 
reference to the group so that it can submit its own tasks to the 
group's thread pool. There is merit in this proposal and the support is 
in the implementation (but not the API yet, needs further thought).

-Alan.



More information about the nio-dev mailing list