V1.0: Recursive scan v2.0: Multi threaded scan Collects more metadata v2.1: Uses AVX2 instead of SSE2 v3.0: Simple mutex/critical section based MPMC queue reusable hashing buffer v3.1: Lock free MPMC queue Vyukov-style v3.2: Making the lock free MPMC queue growable Add padding to avoir false sharing Add sleep() and SwitchToThread() to limit spinning v3.3: 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 v3.4: Rewriting hash_worker() to export file_hashes.txt