Skip to content
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

Enforce maximum outstanding publisher confirms, if set #1703

Merged
merged 8 commits into from
Oct 21, 2024

Conversation

lukebakken
Copy link
Contributor

Part of #1682

@lukebakken lukebakken self-assigned this Oct 18, 2024
@lukebakken lukebakken added this to the 7.0.0 milestone Oct 18, 2024
@danielmarbach
Copy link
Collaborator

I have looked at the client code changes that have been recently added in addition to those changes and overall the inlining of the channel base and the partial split helps to better navigate the complexity of the code.

My biggest concern after reading through the changes is that all the flag checking and the hidden acquiring and releasing of the confirmation semaphore plus the manipulation of the sequence number in methods that assume the semaphore is held makes it non-trivial to understand the flow. I think this structure could quickly become a maintenance burden overtime and be the source of subtle bugs.

I could not spend more time digging into the code because the time I had available was eaten up by providing the spike. Once those discussions settle, I might find some time to think how the code can be restructured.

@lukebakken
Copy link
Contributor Author

My biggest concern after reading through the changes is that all the flag checking and the hidden acquiring and releasing of the confirmation semaphore plus the manipulation of the sequence number in methods that assume the semaphore is held makes it non-trivial to understand the flow.

I agree. I will add a lot more comments to the code. At this point, unless a bug or improvement is found, I'd like to keep it as is because it's all "behind the scenes" anyway and we can change it in the future.

@lukebakken lukebakken marked this pull request as ready for review October 21, 2024 16:12
@lukebakken lukebakken merged commit 7f512d7 into main Oct 21, 2024
17 checks passed
@lukebakken lukebakken deleted the rabbitmq-dotnet-client-1682-outstanding-confirms branch October 21, 2024 16:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants