protojure / lib

A collection of libraries to support Protojure applications at runtime
https://protojure.readthedocs.io
Apache License 2.0
64 stars 14 forks source link

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

Closed ghaskins closed 1 month ago

ghaskins commented 1 month ago

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.