Implement freelist class
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 like core::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.
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? @gavv if not, could you please assign me to the issue? I would like to give it a go.
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?
@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! :)
Hi, I can follow up on this if u guys let me, as well as #602.
@Flw5469 Thanks. We currently have PR #783 that is pretty close to what we need.
Let's first ask Veronika what plans does she have on that PR. @veronikaro
@gavv @Flw5469 hi guys, sorry for the delay - quite busy recently. I have some time now and will try to wrap it up in the upcoming days!
@veronikaro Thanks, and no hurry.
Implemented in #783
Thanks everybody involved, #602 is now unblocked.