MCPcopy Create free account
hub / github.com/HexHive/NASS / RunInMultipleProcesses

Function RunInMultipleProcesses

fuzz/libfuzzer/FuzzerDriver.cpp:294–313  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

292}
293
294static int RunInMultipleProcesses(const std::vector<std::string> &Args,
295 unsigned NumWorkers, unsigned NumJobs) {
296 std::atomic<unsigned> Counter(0);
297 std::atomic<bool> HasErrors(false);
298 Command Cmd(Args);
299 Cmd.removeFlag("jobs");
300 Cmd.removeFlag("workers");
301 std::vector<std::thread> V;
302 std::thread Pulse(PulseThread);
303 Pulse.detach();
304 V.resize(NumWorkers);
305 for (unsigned i = 0; i < NumWorkers; i++) {
306 V[i] = std::thread(WorkerThread, std::ref(Cmd), &Counter, NumJobs,
307 &HasErrors);
308 SetThreadName(V[i], "FuzzerWorker");
309 }
310 for (auto &T : V)
311 T.join();
312 return HasErrors ? 1 : 0;
313}
314
315static void RssThread(Fuzzer *F, size_t RssLimitMb) {
316 while (true) {

Callers 1

FuzzerDriverFunction · 0.85

Calls 5

removeFlagMethod · 0.80
detachMethod · 0.80
joinMethod · 0.80
SetThreadNameFunction · 0.70
resizeMethod · 0.45

Tested by

no test coverage detected