9 RFR: 8178147: Race conditions in timeout handling code in http/2 incubator client
Daniel Fuchs
daniel.fuchs at oracle.com
Fri Apr 7 16:51:27 UTC 2017
Hi Chris,
Here is the new webrev - where I have incorporated your feedback.
http://cr.openjdk.java.net/~dfuchs/webrev_8170940/webrev.01/
If I don't hear from you that's what I plan to push on Monday.
best regards,
-- daniel
On 07/04/2017 15:12, Daniel Fuchs wrote:
> On 07/04/2017 14:31, Chris Hegarty wrote:
>> Daniel,
>>
>> On 06/04/17 11:32, Daniel Fuchs wrote:
>>> ...
>>>
>>> webrev:
>>> http://cr.openjdk.java.net/~dfuchs/webrev_8170940/webrev.00/
>>
>> Looks good Daniel. Just a few comments.
>>
>> 1) Http1Exchange.java
>>
>> Can 'operations' now be made private, and not a synchronizedList?
>> Now that it is operated on only within synchronized blocks.
>
> Yes - will do and retest before pushing. Good catch.
>
>> 2) Exchange.java L197 : synchronized(this)
>>
>> I'm not sure what this synchronized block gets you? The code
>> is racy, and both fields are volatile. Can this be removed?
>
> No. This is the double-locking idiom and the synchronized is necessary
> for atomic behavior (in order to get a consistent snapshot of the
> two fields).
> It's equivalent to a CAS where the compare would be done on two fields
> and the set on only one of them.
>
> best,
>
> -- daniel
>
>>
>> -Chris.
>
More information about the net-dev
mailing list