-
Notifications
You must be signed in to change notification settings - Fork 804
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Promote PendingAction for general use. #8423
Promote PendingAction for general use. #8423
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Make sense.
I don't like that this is done at the same time with the promotion. It's not even a separate commit. It's not reviewer friendly because you can't simply see the additional changes, and we can't revert it separately if it has problems. |
7c3b1c9
to
d027947
Compare
Updated to remove the thread safety, I'll put that in a separate PR. |
d027947
to
4984fd3
Compare
Cherry-picked to v9.2.x |
* asf/9.2.x: Updated ChangeLog Fix parent_select optional scheme (apache#8831) Add `#pragma once` for PendingAction.h (apache#8846) Promote class PendingAction from HttpSM.h for use in other classes. (apache#8423) Fixes leak in SNIAction name globbing (apache#8827) Handle opentelemetry-cpp v1.3.0 upgrade for otel_tracer plugin (apache#8834) Fix overflow conditions in prefetch plugin (apache#8660) Remove incorrect comment from base64 functions (apache#8835) Add autest to cover updates to cache with alternates (apache#8779)
PendingAction
is a class used inHttpSM
to safely tracking pending actions. This is generally useful. In particular there is a race condition inPluginVC
which should be fixed by using this class.In addition to promoting this out of "HttpSM.h" for general use, the implementation has been adjusted for greater thread safety. Multiple threads can safely assign to the instance, with the guarantee that all actions except the one stored in the instance have been canceled.