PipedProcess for linux:
- eliminates polling of stdout and stderr streams by using listener threads and epoll(7) API
Additionally:
CompilerGCC::
- removed polling for running processes, used to call PipedProcess::HasInput() method,
- eliminated ::OnIdle() and ::OnTimer() events,
- re-using PipedProcess instances for compilation/linking jobs (fast start),
- tokenizing data from multiple input streams in parallel (off-loading main event loop),
DebuggerGDB::
- eliminated ::OnIdle() and ::OnTimer() - 50 events per second,
- added ::OnConsoleClosed() event, replacing ::CheckIfConsoleIsClosed(),
ToolsManager::
- eliminated ::OnIdle() events,
Version 2 of this patch: