Commit Graph

8 Commits

Author SHA1 Message Date
a299c4a1e1 LF MPMC queue improvements
Small improvements of the LF MPMC queue

Making the LF MPMC queue generic and in a seperate header file
2026-03-09 13:21:45 +01:00
75c2592bfe Making the hashing buffer reusable instead of malloc every file 2026-03-08 21:14:58 +01:00
dd0797df79 hashers now use thread local arena
Instead of writing directly to file_hashes.txt, hash_workers now are
using a local arena, writing everything once at the end

using #pragma once to ensure that a given header file is included only
once in a single compilation unit
2026-03-08 10:46:05 +01:00
ee02b83094 Updating the changelog 2026-03-07 19:51:17 +01:00
ac78f585d9 Rewriting hash_worker() to export file_hashes.txt 2026-03-07 17:10:35 +01:00
417dbad374 Bug fixes in lock free MPMC queue
Fix bug slots used before initialization,compare and swap is protecting
updating committed, but it is not protecting the memory initialization.
Adding atomic_flag commit_lock to protect against that

Fix bug multiple threads committing at the same time, fixed by using
atomic_flag commit_lock and re-checking committed after acquiring the
lock

Reorder helper functions
2026-03-07 11:36:11 +01:00
4967591ff8 Improving the lock free mpmc queue
Making the queue growable
Add padding to avoir false sharing
Add sleep() and SwitchToThread() to limit spinning
2026-03-07 01:40:31 +01:00
86ad30788a Add changlog and binaries 2026-03-06 20:52:29 +01:00