From: Kostya Serebryany Date: Mon, 11 May 2015 21:31:51 +0000 (+0000) Subject: [lib/Fuzzer] when running multiple fuzzing processes, print something every 10 minute... X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=1d4481df823996a8637e5aadfd07c2a335f90d5c [lib/Fuzzer] when running multiple fuzzing processes, print something every 10 minutes to avoid buildbot timeouts git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@237054 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Fuzzer/FuzzerDriver.cpp b/lib/Fuzzer/FuzzerDriver.cpp index c24ecbd57eb..724714e6b89 100644 --- a/lib/Fuzzer/FuzzerDriver.cpp +++ b/lib/Fuzzer/FuzzerDriver.cpp @@ -13,6 +13,7 @@ #include "FuzzerInternal.h" #include +#include #include #include #include @@ -122,9 +123,18 @@ static void ParseFlags(int argc, char **argv) { } } +static std::mutex Mu; + +static void PulseThread() { + while (true) { + std::this_thread::sleep_for(std::chrono::seconds(600)); + std::lock_guard Lock(Mu); + std::cerr << "pulse...\n"; + } +} + static void WorkerThread(const std::string &Cmd, std::atomic *Counter, int NumJobs, std::atomic *HasErrors) { - static std::mutex CerrMutex; while (true) { int C = (*Counter)++; if (C >= NumJobs) break; @@ -135,7 +145,7 @@ static void WorkerThread(const std::string &Cmd, std::atomic *Counter, int ExitCode = system(ToRun.c_str()); if (ExitCode != 0) *HasErrors = true; - std::lock_guard Lock(CerrMutex); + std::lock_guard Lock(Mu); std::cerr << "================== Job " << C << " exited with exit code " << ExitCode << " =================\n"; @@ -154,10 +164,12 @@ static int RunInMultipleProcesses(int argc, char **argv, int NumWorkers, Cmd += " "; } std::vector V; + std::thread Pulse(PulseThread); for (int i = 0; i < NumWorkers; i++) V.push_back(std::thread(WorkerThread, Cmd, &Counter, NumJobs, &HasErrors)); for (auto &T : V) T.join(); + Pulse.join(); return HasErrors ? 1 : 0; }