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

Stop using managed blocker API #11430

Open
Tracked by #5326
cody-littley opened this issue Feb 7, 2024 · 0 comments
Open
Tracked by #5326

Stop using managed blocker API #11430

cody-littley opened this issue Feb 7, 2024 · 0 comments
Assignees
Labels
Platform Tickets pertaining to the platform

Comments

@cody-littley
Copy link
Contributor

The ForkJoinPool.ManagedBlocker API is clunky and has performance issues. It would be really nice if the wiring framework could implement back pressure (and other blocking operations) without use of a managed blocker.

As an alternative, I propose creating a mechanism that would allow a sequential task to increase the dependency count of the next awaiting in the logical queue. Something along the lines of send(-1). Then, instead of blocking while waiting to insert a thing into the next step in the pipeline, create a new fork join task that will re-attempt insertion and will call send() on the next task if successful. If not successful, the new task would schedule another task to retry, and so on.

@cody-littley cody-littley self-assigned this Feb 7, 2024
@poulok poulok added the Platform Tickets pertaining to the platform label Jun 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Platform Tickets pertaining to the platform
Projects
None yet
Development

No branches or pull requests

2 participants