On Wed, 24 May 2023 11:31:14 GMT, Daniel Fuchs <[email protected]> wrote:

>> src/java.net.http/share/classes/jdk/internal/net/http/MultiExchange.java 
>> line 218:
>> 
>>> 216:         synchronized (this) {
>>> 217:             previousExchange = this.exchange;
>>> 218:             this.exchange = exchange;
>> 
>> There's a behavioural change here as compared to before this change. 
>> Previously, we used to first call `released()` on the old exchange and 
>> `cancel()` the new exchange, before setting the `this.exchange` to the new 
>> exchange. Now, with this change, we first switch the `this.exchange` to the 
>> new exchange and then call `released()` and `cancel()`. Do you think that 
>> could have any (odd) issues?
>
> Good observation. When we reach here the previous exchange is practically 
> terminated. Looking at the implementation of released(), and at the place 
> where `setExchange` is called, I don't think it matters.

Thank you Daniel for checking.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/14038#discussion_r1203977099

Reply via email to