You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
mitogen/mitogen
Alex Willmer 17bee70dc2 mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio
Mitogen was leaving the stdout and stderr of subprocesses in non-blocking
mode. When Python code ran in the remote process created by Mitogen calls such
as `print(long_string)` or `os.stout.write(bigger_than_the_buffer)` sometimes
raised `BlockingIOError`, or similar.

This change
- Removes code in `mitogen.core.Side` that set blocking/non-blocking mode
- Adds blocking/non-blocking control to `os.mitogen.pipe()` and a new
  function `mitogen.core.socketpair()`
- Replaces `mitogen.core.set_block` and `mitogen.core.set_nonblock`
  with `mitogen.core.set_blocking`, mirroring `os.set_blocking`
- Updates call sites as appropriate
- Adds tests for new functions and arguments
- Adds a regression test for subprocess stdio blocking/non-blocking

fixes #712
5 months ago
..
compat compat: fix Py2.4 SyntaxError 6 years ago
__init__.py Begin 0.3.26dev 5 months ago
buildah.py Remove unused module imports 4 years ago
core.py mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio 5 months ago
debug.py [stream-refactor] fix flake8 errors 7 years ago
doas.py remove unused imports flagged by lgtm 6 years ago
docker.py Refactor Stream, introduce quasi-asynchronous connect, much more 7 years ago
fakessh.py mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio 5 months ago
fork.py mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio 5 months ago
jail.py Stop using mitogen root logger in more modules, remove unused loggers 6 years ago
kubectl.py Remove unused module imports 4 years ago
lxc.py Remove unused module imports 4 years ago
lxd.py Remove unused module imports 4 years ago
master.py mitogen: Replace uses of deprecated `pkgutil.find_loader()` 11 months ago
minify.py Normalize docstring formatting 7 years ago
os_fork.py mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio 5 months ago
parent.py mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio 5 months ago
podman.py Remove unused module imports 4 years ago
profiler.py Fix stdlib typos that would cause NameError or AttributeError exceptions 4 years ago
select.py Merge devel/290 @ 79b979ec8544ef5d8620c64068d4a42fabf50415 6 years ago
service.py mitogen: Consolidate back compatibility fallbacks and polyfills in mitogen.core 1 year ago
setns.py Refactor Stream, introduce quasi-asynchronous connect, much more 7 years ago
ssh.py mitogen: Consolidate back compatibility fallbacks and polyfills in mitogen.core 1 year ago
su.py mitogen: Consolidate back compatibility fallbacks and polyfills in mitogen.core 1 year ago
sudo.py reverted autolinted code 6 years ago
unix.py mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio 5 months ago
utils.py mitogen: Consolidate back compatibility fallbacks and polyfills in mitogen.core 1 year ago