hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Patrick Moore (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HTTPCORE-205) AbstractMultiworkerIOReactor needs optional Latch to signal when ready.
Date Sat, 05 Sep 2009 17:31:57 GMT

    [ https://issues.apache.org/jira/browse/HTTPCORE-205?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12751772#action_12751772
] 

Patrick Moore commented on HTTPCORE-205:
----------------------------------------

re #1 ---I meant that you need a waitFor(int time, TimeUnit timeUnit) throws TimeoutException;
method on ListenerEndPoint

re #2 -- by making interface that is more complete and not referencing ListenerEndPointImpl
in the code, then the user can supply their own implementation of ListenerEndPoint that can
be as fancy as they want ( so that you don't have to be ) 

Really this change is just about putting all the public ListenerEndPointImpl methods in the
ListenerEndPoint interface (or a subinterface ListenerEndPointImplementor )

> AbstractMultiworkerIOReactor needs optional Latch to signal when ready.
> -----------------------------------------------------------------------
>
>                 Key: HTTPCORE-205
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-205
>             Project: HttpComponents HttpCore
>          Issue Type: Improvement
>          Components: HttpCore NIO
>    Affects Versions: 4.0.1
>            Reporter: Patrick Moore
>             Fix For: 4.1
>
>         Attachments: AbstractMultiworkerIOReactor.patch
>
>
> AbstractMultiworkerIOReactor may take some time getting ready ( needs to start threads
for example ). In order to ensure that it is ready before starting to send requests, a CountDownLatch
is needed.
> This is important for our test suites which are launch the reactor and then immediately
trying to hit it. ( and failing ) 
>             for (int i = 0; i < this.workerCount; i++) {
>                 if (this.status != IOReactorStatus.ACTIVE) {
>                     return;
>                 }
>                 this.threads[i].start();
>             }
>  LINE 303: this.countDownLatch.countDown(); <<<<<<<           
>             for (;;) {
>                 int readyCount;
>                 try {
>                     readyCount = this.selector.select(this.selectTimeout);
>                 } catch (InterruptedIOException ex) {
>                     throw ex;
>                 } catch (IOException ex) {
>                     throw new IOReactorException("Unexpected selector failure", ex);
>                 }

-- 
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: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org


Mime
View raw message