Skip to content

Multithreading structures implementation#1

Merged
isoldpower merged 19 commits into
mainfrom
feature/structures-task
Feb 24, 2026
Merged

Multithreading structures implementation#1
isoldpower merged 19 commits into
mainfrom
feature/structures-task

Conversation

@isoldpower
Copy link
Copy Markdown
Owner

PR includes 3 structures:

  • Linked List. Standard singly-linked list with all the default operations;
  • Bounded Queue. Queue that is limited in its size;
  • Unbounded Queue. Queue that is unlimited in its size;

Each of the structures is implemented in 2 variations:

  • Lock-free variation. Doesn't use memory locks with mutexes or other tools;
  • Fine-grained lock. Utilizes lock patterns with mutexes to achieve thread-safety;

Each structure is tested for performance, peak memory overhead and average memory consumption.

isoldpower and others added 17 commits November 23, 2025 20:57
The implementation uses 2 mutexes, for head and for tail. Considered easiest among implementation
implementation is using Dmitry Vyukov's MPMC bounded queue algorithm
ALERT: The benchmark is not running at this point due to the memory reclamation issues
…eletion

BREAKING CHANGE: for now the benchmark fails with double deletion error. It probably stems from racing conditions
@isoldpower isoldpower self-assigned this Feb 24, 2026
windows is not supported for benchmarking and multithreading as it has some serious limitations on retreiving the memory usage information
@isoldpower isoldpower merged commit 9dedbb1 into main Feb 24, 2026
4 checks passed
@isoldpower isoldpower deleted the feature/structures-task branch February 24, 2026 02:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant