Commit Graph

604 Commits (863f923f1410c7fa34dc8a7cd0f8e0f695a7b5a4)

Author SHA1 Message Date
David Wilson e6a107c5aa core: replace Queue with Latch
On Python 2.x, operations on pthread objects with a timeout set actually
cause internal polling. When polling fails to yield a positive result,
it quickly backs off to a 50ms loop, which results in a huge amount of
latency throughout.

Instead, give up using Queue.Queue.get(timeout=...) and replace it with
the UNIX self-pipe trick. Knocks another 45% off my.yml in the Ansible
examples directory against a local VM.

This has the potential to burn a *lot* of file descriptors, but hell,
it's not the 1940s any more, RAM is all but infinite. I can live with
that.

This gets things down to around 75ms per playbook step, still hunting
for additional sources of latency.
7 years ago
David Wilson 6059e0c1db ansible: support become:True and become_user 7 years ago
David Wilson ed09076bdd ansible: automatically configure connection plug-in. 7 years ago
David Wilson a35fcf44cc ansible: restructure to avoid intermediate imports 7 years ago