hc-dev mailing list archives

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

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

Oleg Kalnichevski commented on HTTPCORE-205:
--------------------------------------------

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

True. This is a fuck-up on my part. However given the fact that it takes only a few milliseconds
for listener endpoint to become available or fail, absence of this method may not be a such
big problem for most application.

> then the user can supply their own implementation of ListenerEndPoint

I am not convinced this is good idea. In this case a custom impl of ListeningIOReactor should
be more appropriate.

Anyways, do feel free to submit a patch with changes you deem necessary. Please note we will
not be able to commit such a patch until 5.0 if it breaks API compatibility with 4.x

Oleg

> 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