fune/python/mach
Mike Hommey fff1f6e279 Bug 1906191 - Change how ProcessHandler handles output_timeout. r=releng-reviewers,gbrown a=test-only
First and foremost, this undoes the patch for bug 1845125, which causes
other problems (e.g. output being dropped past a certain point).

The rest of the patch addresses bug 1845125 at the root: Ultimately, this
is a similar problem to bug 1863675.

wait is blocked on joining the stream reader thread, but the stream
reader thread is blocked on readline because the process is finished but
hasn't been waited on yet.

So joining the stream reader thread after the process is known to have
been finished is expected to work more reliably... except when a child
has been spun up that keeps it alive. In this case, we just keep the
reader thread working in the background, which is a similar strategy to
what was done in bug 1863675.

Differential Revision: https://phabricator.services.mozilla.com/D218389
2024-08-26 23:49:06 +00:00
..
docs Bug 1840493 - doc/rst: fix some languages declaration r=firefox-source-docs-reviewers,webdriver-reviewers,necko-reviewers,geckoview-reviewers,devtools-reviewers,profiler-reviewers,championshuttler,whimboo,nchevobbe,julienw,amejiamarmol 2023-12-13 18:32:20 +00:00
mach Bug 1906191 - Change how ProcessHandler handles output_timeout. r=releng-reviewers,gbrown a=test-only 2024-08-26 23:49:06 +00:00
.ruff.toml
bash-completion.sh
metrics.yaml Bug 1894155 - Replace mhentges@mozilla.com with ahochheiden@mozilla.com from notification_emails section of pings.yaml and metrics.yaml r=sylvestre 2024-05-01 00:12:25 +00:00
pings.yaml Bug 1894155 - Replace mhentges@mozilla.com with ahochheiden@mozilla.com from notification_emails section of pings.yaml and metrics.yaml r=sylvestre 2024-05-01 00:12:25 +00:00
README.rst
setup.cfg
setup.py Bug 1877348 - Remove the try/except wrappers that end up calling distutils.core.setup r=firefox-build-system-reviewers,glandium 2024-02-08 21:07:27 +00:00

====
mach
====

Mach (German for *do*) is a generic command dispatcher for the command
line.

To use mach, you install the mach core (a Python package), create an
executable *driver* script (named whatever you want), and write mach
commands. When the *driver* is executed, mach dispatches to the
requested command handler automatically.

To learn more, read the docs in ``docs/``.