Directory traversal/processing is a ubiquitous task in both applications and low-level system software; however, in many cases it does not comprise enough of the overall system to warrant the level of effort to multithread in order to take advantage of multicore hardware for faster operation. Multicore DirWalk is a new API that enables multicore-enabled directory processing with as little as 100 lines of code and no direct thread creation. Imagine writing a simple 100-line program that processes a directory 8x faster on an 8 core system, yet never having to directly create a single thread, recurse a single folder, apply a filename match filter, etc. With Multicore DirWalk, all of this is accomplished with a single function call and developer-defined callback action.
Multicore DirWalk is an extensible, reusable DirWalk API that is threadsafe and multicore aware. Multicore DirWalk provides features standard to directory walking in general, as well as features to easily adjust the multicore strategy to one of two primary methodologies: 1) multithread a developer-defined "action," or 2) multithread the directory walking.
Multicore DirWalk abstracts the low-level details (threads, cores, caches and other hardware), enabling developers to quickly write multicore-enabled directory walking code, but never create a single thread or even recurse a single directory - Multicore DirWalk does all of this for you. Multicore DirWalk also provides standard DirWalk features such as filesystem filters (inclusion/exclusion), support for removable media, mapped network drives, mounted drives (mapped or SUBST), filesystem mount and junction points, symbolic links and other reparse points.
Multicore DirWalk can be quickly integrated by most developers, even those without prior threading, multicore, or even directory walking experience.