hc-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Gregory (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HTTPCORE-469) Use ReentrantReadWriteLock in AbstractConnPool
Date Mon, 19 Jun 2017 15:20:00 GMT

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

Gary Gregory commented on HTTPCORE-469:

I agree. If someone wants to step in and do the works, great, otherwise let's leave it. It
seems tricky to get this kind of code right and trickier to prove you've done it right with
unit tests.

> Use ReentrantReadWriteLock in AbstractConnPool
> ----------------------------------------------
>                 Key: HTTPCORE-469
>                 URL: https://issues.apache.org/jira/browse/HTTPCORE-469
>             Project: HttpComponents HttpCore
>          Issue Type: Improvement
>          Components: HttpCore
>            Reporter: Matt Nelson
>            Assignee: Oleg Kalnichevski
>            Priority: Minor
>              Labels: stuck, volunteers-wanted
>             Fix For: Future
> AbstractConnPool is currently using a {{ReentrantLock}} which has to lock for read and
write operations. Switching to {{ReentrantReadWriteLock}}[1] and read locks for the stats/getters
methods would reduce the possibility for instrumentation[1] to cause contention. Another option
would be {{StampedLock}}[3] if the compile target is 1.8.
> [1] https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/ReentrantReadWriteLock.html
> [2] https://github.com/dropwizard/metrics/blob/v3.2.2/metrics-httpclient/src/main/java/com/codahale/metrics/httpclient/InstrumentedHttpClientConnectionManager.java#L63-L95
> [3] https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/locks/StampedLock.html

This message was sent by Atlassian JIRA

To unsubscribe, e-mail: dev-unsubscribe@hc.apache.org
For additional commands, e-mail: dev-help@hc.apache.org

View raw message