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
David Wilson fb9ce1054c core: set O_NONBLOCK on every side. Closes #33
The last time I tested set_nonblock() as a fix for the rsync hang, I
used F_SETFD rather than F_SETFL, which resulted in no error, but also
did not set O_NONBLOCK. Turns out missing O_NONBLOCK was the problem.

The rsync hang was due to every context blocking in os.write() waiting
for either a parent or child buffer to empty, which was exacerbated by
rsync's own pipelining, that allows writes from both sides to proceed
even while reads aren't progressing. The hang was due to os.write() on a
blocking fd blocking until buffer space is available to complete the
write. Partial writes are only supported when O_NONBLOCK is enabled.
7 years ago
docs Reorder table of contents. 7 years ago
examples Fixup ansible_demo.py for recent Ansibles 7 years ago
mitogen core: set O_NONBLOCK on every side. Closes #33 7 years ago
tests core: Make iter_read() handle deadline (and non-blocking IO) properly 7 years ago
.gitignore Initial commit. 7 years ago
README.md Add instructions for running tests. 7 years ago
dev_requirements.txt Add more dependencies to dev_requirements.txt. 7 years ago
preamble_size.py Initial commit. 7 years ago
setup.py Initial commit. 7 years ago

README.md

Running The Tests

Your computer should have an Internet connection, and the docker command line tool should be able to connect to a working Docker daemon (localhost or elsewhere for OS X etc.) that can run new images.

The IP address of the Docker daemon must allow exposing ports from running containers, e.g. it should not be firewalled or port forwarded.

If in doubt, just install Docker on a Linux box in the default configuration and run the tests there.