[
https://issues.apache.org/jira/browse/HTTPCORE-48?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12513171
]
Andrea Selva commented on HTTPCORE-48:
--------------------------------------
Hi Oleg,
I think an acceptable solution could be this: on NEED_TASK status inside
doHandshake, delegate the job to a thread (managed by an executor), once this
job finished, set a flag or something similar on the session that requested the
handshaking. Then all method in SSLIOSession (except bind) before do anything,
check this "completion flag" if it's setted, else return null or throw an
exception. The only problem is when the SSL client/server dispatcher calls
another method, before bind phase completion, this should fail (and the caller
manage properly this case), or should be designed some mechanism to store this
pending call somewhere, and invoke in the executor thread after the handshaking
phase has finished?!
Thanks
Andrea
> Make SSL IOSession decorator to use an Executor interface to execute all
> potentially blocking handshake tasks
> -------------------------------------------------------------------------------------------------------------
>
> Key: HTTPCORE-48
> URL: https://issues.apache.org/jira/browse/HTTPCORE-48
> Project: HttpComponents Core
> Issue Type: Improvement
> Components: HttpCore NIO
> Reporter: Oleg Kalnichevski
> Fix For: 4.0-beta1
>
>
> Presently the SSL IOSession decorator executes all potentially blocking
> handshake tasks on the I/O thread. Use an Executor interface from
> java.util.concurrent to make possible the execution of handshake tasks using
> worker threads, thus making the I/O thread available for processing I/O
> events even if some SSL connections are blocked pending completion of a
> handshake task.
> Oleg
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]