Commit Graph

10 Commits

Author SHA1 Message Date
59a3f3461b Updating the LF MPMC queue and replacing DirQueue with it
Making the MPMC queue support when producers are consumers at the same
time by adding a variable work, mpmc_push_work() that increments work
and mpmc_task_done() that decrements work, and if work = 0 calls
mpmc_producers_finished() that pushes poinsons to wake up sleeping
threads and make them return NULL

Replacing DirQueue, a queue growable with realloc with the MPMC queue
2026-03-11 20:49:02 +01:00
0e3ec5b09c Replacing Malloc and strdup in scan helper function with FileEntry and path arenas 2026-03-11 16:17:22 +01:00
aef070192f Using FindFirstFileA() instead of CreateFileA() to get the file size
Since we already call FindFirstFileA() and it returns the size there is
no need to open/close every file to get it's size
2026-03-11 09:02:17 +01:00
1fa306643f Align the MPMC queue to pagesize 2026-03-09 18:01:11 +01:00
f3c4cb7b76 plat_sem_destroy(&q->items_sem); 2026-03-09 17:27:45 +01:00
7d8b4addb7 Implementing a semaphore in the MPMC queue to wake up consumers 2026-03-09 16:44:43 +01:00
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