[ 
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
(v6.4.14#64029)

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

Reply via email to