-
-
Notifications
You must be signed in to change notification settings - Fork 213
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
Implement freelist class #734
Comments
Hi, I am interesting in solving this issue. This would be my first time contributing to an open source project. Where would I find where this issue is taking place? Which file should I be working on? |
Hi, thanks. It belongs to roc_core module. See here: https://roc-streaming.org/toolkit/docs/internals/code_structure.html |
I'd be interested in giving this one and/or #602 a shot, @nataliayave are you still working on this? I can pick up #602 after if you are, otherwise I can take both |
@mihir-mihir While we're waiting for reply from Natalia, probably you'd be interested in #749, which is also about lock-free programming. UPD: Oh, and there is also #362, which was abandoned a while ago, but I think is pretty interesting. |
Thanks, I've commented on #749 |
@mihir-mihir I guess we can assume that the issue is free, please ping me if/when you want to be assigned. |
@gavv yes I'll take this one thanks |
Awesome |
Hey @mihir-mihir, are you still working on this? |
Hi @veronikaro, go ahead |
Hi, I know I didn't request the issue here, but I have been working on it too. I am going to finish working on the issue today, so would it be okay to make a pull request when I finish it? |
…on Issue roc-streaming#734. The implementation is based on the article provided in the issue and the List<T> class.
@Ahilan001 The patch you sent is confusing, looks like some random pieces of code?.. And it doesn't compile. Also please read coding guidelines: https://roc-streaming.org/toolkit/docs/development/coding_guidelines.html Veronika, it would be great if you could take this issue :) @veronikaro |
@gavv thanks, will do! :) |
Subtask extracted from #602. See that task for rationale.
Add new class
core::Freelist<T>
, which implements lock-free free list based on this article:Solving the ABA Problem for Lock-Free Free Lists
It should be modeled after
core::List<T>
. It should implement lock-free LIFO based on singly linked list, with just two operations: push_back() and pop_back(). It should be intrusive, just likecore::List
, i.e. elements should inherit node class, so that node data is embedded into element instead of being allocated separately.We also need to cover it with unit tests.
The text was updated successfully, but these errors were encountered: