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

Feature Request: De-throttling for pipelines and/or collections. #61

Open
the-Arioch opened this issue Jan 24, 2016 · 0 comments
Open

Comments

@the-Arioch
Copy link

Making a demo got an app frozen at Pipeline.WaitFor

After a while I figured out the reason.
And I agree that for server0like application when first results should be yielded to client before the last item produced it makes little use.

Still I think that potentially blocking features should be made optional, at least on bailout terms.

So I ask for one of (or both) features:

  1. iOmniPipeline.DeThrottle() procedure with the same use semantics as per .Throttle
  2. iOmniBlockingCollection expanded with .WasAccessed function and .DeThrottle procedure so pipeline stages could do

if not output.WasAccessed() then output.DeThrottle()

This feature would perhaps be even more useful for self-re-fuelling pipelines when the same stage can be both producer and consumer, thus blocking itself on TryAdd would prevent further TryTake and cause self-deadlock..

Perhaps IOmniBlockingCollection.IsThrottlingEnabled() and IOmniBlockingCollection.IsThrottlingNow() might be of use too. So if a pipeline stage requires not-throttled collection and can no more change its mode it can explicitly raise exception

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

No branches or pull requests

1 participant