Distributed self-replicating programs in Python
Go to file
David Wilson 484d4fdb74 core: fix Latch socket sharing race.
If thread A is about to wake as thread B is about to sleep, and A loses
the GIL at an inopportune moment, it was possible for two latches to
share the same socketpair, causing wakeups routed to the wrong latch.

The pair was returned to the 'idle sockets' list before .recv() had been
called. This manifested as TimeoutError() thrown rarely with many active
threads and the host is heavily loaded (such as Travis CI).

Add more documentation and stop writing single wake bytes. Instead the
recipient's identity is written instead, making it simpler to detect
future bugs.
2018-07-07 14:55:47 +01:00
.travis tests: use Ansible 2.5.5 by default 2018-07-07 14:55:47 +01:00
ansible_mitogen ansible: reduce() does not exist in 3.x. 2018-07-07 14:55:47 +01:00
docs docs: update compatibility notice on main page. 2018-07-07 14:55:47 +01:00
examples examples: update mitogen-fuse.py for 3.x. 2018-07-07 14:55:47 +01:00
mitogen core: fix Latch socket sharing race. 2018-07-07 14:55:47 +01:00
tests ansible: fix test for 3.x. 2018-07-07 14:55:47 +01:00
.gitignore docs: fix intensely annoying _prefix, 2 years later. 2018-04-06 16:50:36 +01:00
.lgtm.yml compat: ignore LGTM checks on third party 2018-03-19 21:58:31 +05:45
.travis.yml Reenable all Travis Jobs. 2018-07-07 14:55:47 +01:00
ChangeLog docs: add initial ChangeLog. 2018-04-27 01:33:07 +01:00
LICENSE Add license text everywhere. 2018-03-19 21:58:28 +05:45
README.md README: move testing bits into tests directory. 2018-03-19 21:58:32 +05:45
dev_requirements.txt issue #275: bump ansible to 2.5.5 2018-06-25 01:36:55 +01:00
preamble_size.py Initial Python 3.x port work. 2018-07-07 14:55:47 +01:00
run_tests Record ulimit -a in run_test output. 2018-07-07 14:55:47 +01:00
setup.cfg Ignore another annoying flake8 message. 2018-05-28 02:33:47 +01:00
setup.py Update trove classifiers. 2018-07-07 14:55:47 +01:00
tox.ini Fix invocation of test runner by tox 2018-06-18 19:43:50 +01:00

README.md