diff options
| author | Mark A. Tsuchida <matsuchida@wisc.edu> | 2024-08-14 13:43:22 -0500 |
|---|---|---|
| committer | Jussi Pakkanen <jpakkane@gmail.com> | 2024-08-25 22:36:13 +0300 |
| commit | a57c880368379091a7fc6ee9916a5a80042e9bf2 (patch) | |
| tree | 30e59b8e0d968f6c7207048a9289ddcec7b1d6f0 /docs/theme | |
| parent | 0bd45b3676b6100cb58a5a15bc9e783ec1d185c1 (diff) | |
| download | meson-a57c880368379091a7fc6ee9916a5a80042e9bf2.tar.gz | |
Better handle CTRL-C during clang-tidy/format
It was possible (with some frequency) for the clang-tidy/format target
to continue starting new subprocesses after a CTRL-C, because we were
not canceling the already queued tasks and waiting for all of them.
This makes a best-effort attempt to cancel all further subprocesses. It
is not 100%, because there is a race that is hard to avoid (without
major restructuring, at least): new subprocesses may be started after
KeyboardInterrupt (or any other exception) is raised but before we get
to the cancellation.
When the race happens, the calling ninja may exit before Meson exits,
causing some output (from clang-tidy/format and Meson's traceback) to be
printed after returning to the shell prompt. But this is an improvement
over potentially launching all the remaining tasks after having returned
to the shell, which is what used to happen rather often.
In practice, it appears that we cleanly exit with a pretty high
probability unless CTRL-C is hit very early after starting (presumably
before the thread pool has launched subprocesses on all its threads).
Diffstat (limited to 'docs/theme')
0 files changed, 0 insertions, 0 deletions
