Covering multi-threaded processes

PureCoverage supports multi-threaded applications.

PureCoverage writes coverage data whenever any of the lightweight process threads invokes exit or exec. Those system calls terminate all the threads at the same time, so the total coverage data is recorded for the combination of threads.

PureCoverage options and API functions do not control separate recording of coverage data by an individual thread. This is because all the threads share the coverage counters.