Open gavv opened 1 week ago
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
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 ListsIt 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.