- 19 Mar, 2018 40 commits
-
-
David Wilson authored
-
David Wilson authored
-
Alex Willmer authored
-
Alex Willmer authored
I'm fairly sure these updates are correct, but I'm not able to run the test suite to confirm.
-
Alex Willmer authored
A previous commit renamed run_with_broker() and with_broker() to run_with_router() and with_router() respctively. Some references were missed.
-
Alex Willmer authored
Fixes an undefined variable error found by pylint
-
Alex Willmer authored
Fixes an undefined variable error found by pylint
-
Alex Willmer authored
Found with pylint
-
Alex Willmer authored
Found using pylint
-
Alex Willmer authored
Found using pylint
-
Alex Willmer authored
Found using pylint
-
David Wilson authored
This probably worsens performance in the common case, but it prevents runaway producers (see e.g. issue #36) from spending all their CPU copying around huge strings. It's also a small step towards a solution to issue #6, which will replace the output buffer with some sort of fancier queue anyway. This reduces a particular 40 second run of rsync to 1.5 seconds.
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
needed for inter-child rsync.
-
David Wilson authored
-
David Wilson authored
Saves an import, pain in the ass to type all the time.
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
Makes it easier to match up reads/writes across log files by using message byte count
-
David Wilson authored
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.
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
-
David Wilson authored
Previously _output_buf was racy. This may or may not be cheaper than simply using a lock, but it requires much less code, so I prefer it for now.
-