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

Remove core.async go-routines from LPM flow #167

Merged
merged 1 commit into from
Aug 30, 2024

Conversation

ghaskins
Copy link
Member

It is possible for the LPM flow to block, thus making it incompatible with the use of go-routines. We re-tool LPM to use vthreads (when available) which should offer a similar resource consumption model as core.async but without the limitations of blocking. Users on < JDK21 will gracefully degrade to a standard platform thread, which isn't great but its also more correct than leaving LPM using core.async incorrectly.

It is possible for the LPM flow to block, thus making it incompatible
with the use of go-routines.  We re-tool LPM to use vthreads (when available)
which should offer a similar resource consumption model as core.async but
without the limitations of blocking.  Users on < JDK21 will gracefully degrade
to a standard platform thread, which isn't great but its also more correct
than leaving LPM using core.async incorrectly.

Signed-off-by: Greg Haskins <greg@manetu.com>
Copy link
Member

@muralisrini muralisrini left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@ghaskins ghaskins merged commit 6b2bec2 into protojure:master Aug 30, 2024
2 checks passed
@ghaskins ghaskins deleted the lpm-vthreads branch August 30, 2024 12:35
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