Commits
Click on a commit to change the comparison rangeInclude the benchmarking string within the binary
This reduces the amount of benchmarking noise that might stem from
noise in filesystem access time. Remove a potential clone of the get_modules result
Most of the time the result should be cached. Unfortunately we are
required to keep it in a Sync structure (thus a Mutex + Arc is being
used). To workaround this the MutexGuard that we acquire during the
function call is moved into another struct that supports a std::ops::deref-alike
function which returns either a reference to an owned copy (slow case)
or a reference to the value within the Mutex (fast path).
Thus clones or allocations are only done whenever the get_modules
value was invalidated *or* when there is a lock contention (which
shouldn't currently happen due do the GIL).