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

Adding System.Threading.Channels for simplified, better performing code. #835

Merged
merged 2 commits into from
May 20, 2020

Conversation

stebet
Copy link
Contributor

@stebet stebet commented May 14, 2020

Proposed Changes

This adds System.Threading.Channels for a much more optimized and easy to use construct for asynchronous consumer/producer queue (like used in the Async Dispatcher and the Recovery queue). After looking at optimizations and code surrounding the AsyncConcurrentQueue this seems like a much more sane approach.

This adds a new dependency on the System.Threading.Channels NuGet package (supported by all platforms).

Types of Changes

  • Bug fix (non-breaking change which fixes issue #NNNN)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause an observable behavior change in existing systems)
  • Documentation improvements (corrections, new content, etc)
  • Cosmetic change (whitespace, formatting, etc)

Checklist

  • I have read the CONTRIBUTING.md document
  • I have signed the CA (see https://cla.pivotal.io/sign/rabbitmq)
  • All tests pass locally with my changes
  • I have added tests that prove my fix is effective or that my feature works
  • I have added necessary documentation (if appropriate)
  • Any dependent changes have been merged and published in related repositories

Further Comments

This package has been used in previous PRs (f.ex. #824) and also the PRs that were part of the bigger Pipelines and allocation PRs, but this stands very well on it's own and is perfectly compatible with both 7.0.0 and 6.X. and is a simple change.

@stebet stebet mentioned this pull request May 14, 2020
11 tasks
@lukebakken lukebakken requested review from bording and lukebakken May 14, 2020 14:03
@lukebakken lukebakken self-assigned this May 14, 2020
@lukebakken lukebakken added this to the 6.1.0 milestone May 14, 2020
@lukebakken lukebakken force-pushed the threadingChannels branch from 1063ee6 to 4aceebe Compare May 19, 2020 22:39
@stebet stebet requested a review from lukebakken May 20, 2020 10:10
@lukebakken lukebakken added the next-gen-todo If a rewrite happens, address this issue. label May 20, 2020
@lukebakken lukebakken merged commit 7da7aa6 into rabbitmq:master May 20, 2020
@lukebakken
Copy link
Contributor

Thanks!

@stebet stebet deleted the threadingChannels branch May 20, 2020 15:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
next-gen-todo If a rewrite happens, address this issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants