1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
#include "main.ih"
void process(int nr)
{
string line;
while (true)
{
g_worker.wait();
{
lock_guard<mutex> lk(g_qsMutex);
line = g_qs.front();
g_qs.pop();
}
if (line == "q")
{
g_workforce.notify_all();
return;
}
string command("/usr/bin/g++ --std=c++11 -c " + line);
CmdFork cmdFork(command);
cmdFork.fork();
cout << "Worker " << nr << ": " << line << " returns " <<
cmdFork.childExit() << '\n'
<< cmdFork.childOutput() << '\n';
g_workforce.notify_all();
}
}
|