On Wed, 16 Nov 2022 18:52:42 GMT, Daniel Fuchs <[email protected]> wrote:
> Please find here a re-do fix for the race condition while cancelling request. > The previous fix failed because it registered the subscriber too late (after > having called userSubsciber.onSubscribe()), which opened a window for the > call to unregister to occur before the call to register. > This is fixed in this new iteration. src/java.net.http/share/classes/jdk/internal/net/http/common/HttpBodySubscriberWrapper.java line 188: > 186: // race condition with propagateError: we need to wait until > 187: // subscription is finished before calling onError; > 188: subscriptionLock.lock(); More of a question than a review comment - I see that the only place in this class where we were using `synchronized` is while dealing with the `subscribed`. The PR replaces the `synchronized` blocks with a `ReentrantLock`. Does that have an advantage in context of this code? ------------- PR: https://git.openjdk.org/jdk/pull/11193
