eval: Fix jobwait() to process multiple jobs concurrently

The new event processing architecture changed `jobwait()` semantics: Only one
job is processed at time since process_wait only focuses on one queue.

This fixes the problem with a few changes:

- Allow the event queue polled by `process_wait` to be overriden by a new
  argument.
- Allow the parent queue to be overriden with `queue_replace_parent`
- Create a temporary queue that serves as the parent for all jobs passed to
  `jobwait()`
This commit is contained in:
Thiago de Arruda
2015-08-13 11:53:19 -03:00
parent a816c726bb
commit f1de097dbb
5 changed files with 39 additions and 14 deletions

View File

@@ -257,7 +257,7 @@ static int do_os_system(char **argv,
// the UI
ui_busy_start();
ui_flush();
int status = process_wait(proc, -1);
int status = process_wait(proc, -1, NULL);
ui_busy_stop();
// prepare the out parameters if requested