[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: -Otarget + ncurses applications

From: Paul Smith
Subject: Re: -Otarget + ncurses applications
Date: Tue, 27 Oct 2015 08:57:17 -0400

On Mon, 2015-10-26 at 21:36 -0400, Ben Boeckel wrote:
> The way Ninja has solved this is with the "console" pool which
> indicates that the rule should not run with any other rule in parallel
> and that it needs exclusive access to the terminal.

It's not possible to have an indication that the rule should not run
with any other rule in parallel: the output sync only manages output,
not runtime.

It would be possible to add a facility where a job takes the output
stream lock BEFORE the rule runs, and relinquishes it only after the
rule completes (normally the job runs first and only takes the output
stream lock after the job completes, in order to dump the output, then
relinquishes it).  This would ensure that only that job was using the
terminal and it wouldn't get interrupted.  It would have the effect of
causing all other jobs to pause after they were completed and new jobs
to not be able to start because they can't dump their output, until the
terminal is freed up.

Note that ninja can do this kind of thing much more easily because it
doesn't need to worry about recursive invocations so one ninja process
has a total view of all jobs in the build system and they can easily be

> It also seems that MAKE_TERMERR and MAKE_TERMOUT are kind-of lies with
> -O.

I don't know what this means.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]