Mirror of mitogen
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.
 
 
 
Go to file
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
.ci CI: Test SSH password authentication without sshpass command 6 months ago
.github CI: Abbreviate Github Actions job names 5 months ago
ansible_mitogen mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio 5 months ago
docs mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio 5 months ago
examples Remove get_password_hash, unused 1 year ago
mitogen mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio 5 months ago
scripts add Python3 compatibility 2 years ago
tests mitogen: Fix BlockingIOError & EAGAIN in subprocess stdio 5 months ago
.gitignore chore: Ignore locally installed collections, dummy modules, etc 7 months ago
.lgtm.yml Whoops, merge together lgtm.yml and .lgtm.yml 6 years ago
LICENSE Bump copyright year and use generic author name (testing Travis) 5 years ago
MANIFEST.in setup.py: include LICENSE; closes #538. 7 years ago
README.md docs: shields.io badges for PyPI version & supported Python versions 1 year ago
dev_requirements.txt Split dev_requirements.txt up according to test mode. 7 years ago
netlify.toml docs: Attempt to configure Netlify build of mitogen.networkgenomics.com 12 months ago
preamble_size.py mitogen.parent: Remove tabs from minimized first stage 4 years ago
run_tests tests: Remove unittest2, use stdlib unittest 4 years ago
setup.cfg Keep comatibility with `setuptools` tagging wheels with `py2.py3` 6 months ago
setup.py packaging: Handle pre-release __version__ tuples 7 months ago
tox.ini CI: Abbreviate Github Actions job names 5 months ago

README.md