-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
Create Loom-friendly concurrent weak set (FiberSet) #8861
Comments
/bounty $1500 |
💎 $1,500 bounty • ZIOSteps to solve:
Additional opportunities:
Thank you for contributing to zio/zio! Add a bounty • Share on socials
|
cc @kyri-petrou |
/attempt #8861 Got an approach in mind that's looking feasible so far. If all goes well I'm hoping to have a draft PR for it next week
|
/attempt #8861 Options |
Note The user @kyri-petrou is already attempting to complete issue #8861 and claim the bounty. We recommend checking in on @kyri-petrou's progress, and potentially collaborating, before starting a new solution. |
@kyri-petrou: Reminder that in 7 days the bounty will become up for grabs, so please submit a pull request before then 🙏 |
@snigdha510: Reminder that in 7 days the bounty will become up for grabs, so please submit a pull request before then 🙏 |
The bounty is up for grabs! Everyone is welcome to |
At various points in ZIO, we need the ability to hold onto a set or bag of fibers. We need the ability to concurrently add and remove items from this set / bag, without synchronization or other locks. Finally, we need concurrent (and eventually consistent) iteration over this set / bag.
Ensuring there are no duplicates is not really important, nor does it ever happen, so the "set" aspect of this need not be enforced, which can potentially lead to a more efficient implementation.
Finally, weak references are slow. It would be nice to avoid them entirely, but that's not possible since some fibers are suspended forever and do not shut down cleanly, so garbage collection is necessary to preserve.
However, it's possible using reference queue or other techniques, we could reduce the number of weak refs we create.
This ticket is for implementation of such a high-performance structure, benchmarks showing superior performance, and comprehensive test suite; together with incorporating this weak concurrent set into the Fiber children set, and the set of root fibers.
The text was updated successfully, but these errors were encountered: