- 04 May, 2018 1 commit
-
-
Jason Madden authored
Fixes #1197 Switch to objgraph to handle the measurement for us. That cleared up a few of the obscure issues with references to functions/getset_descriptors and the like. (Possibly because it keys by string names and we were keeping type objects alive.) Many of the real failures were due to re-using exception instances, which is bad because of chaining. Most of the @ignore_leakcheck are for performance, only one is for a real issue---and that test was skipped already on CI anyway for being too flaky.
-
- 03 May, 2018 6 commits
-
-
Jason Madden authored
-
Jason Madden authored
[skip ci]
-
Jason Madden authored
[skip ci]
-
Jason Madden authored
-
Jason Madden authored
Sigh, the timer resolution is really flaky on CI. Patch test__core_timer.py:test_resolution to use the mechanism to handle this.
-
Jason Madden authored
As suggested by https://packaging.python.org/guides/making-a-pypi-friendly-readme/ and https://github.com/pypa/warehouse/issues/3884#issuecomment-386188844, this may now be necessary on warehouse. Adding it to setup.py results in 'distutils/dist.py:274: UserWarning: Unknown distribution option: 'long_description_content_type'' even with setuptools 39, but setup.cfg is equivalent. I verified that PKG-INFO has the appropriate 'Description-Content-Type: text/x-rst' field.
-
- 29 Apr, 2018 1 commit
-
-
Jason Madden authored
Queue all libuv callbacks and run them at the end of the iteration
-
- 27 Apr, 2018 2 commits
-
-
Jason Madden authored
-
Jason Madden authored
Invalid FDs were getting through because of the order in which we ran loop callbacks.
-
- 26 Apr, 2018 5 commits
-
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
This solves the timer delay. Add a specific test for this. We're still sensitive to exactly when these run, for reasons that aren't clear (comment inline). I want to spend some more time investigating that. This disables user-access to prepare watchers on libuv (otherwise we're right back where we started). It could be worked around if needed without *too* much trouble.
-
Jason Madden authored
-
- 25 Apr, 2018 5 commits
-
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
This should eliminate the need to patch and the need to avoid 0 duration timers. This works more like libev. We could theoretically implement priorities using this system.
-
Jason Madden authored
lock: fix typo [skip ci]
-
Florian Margaine authored
It just bothers me so much whenever I hit it, sorry
-
- 23 Apr, 2018 6 commits
-
-
Jason Madden authored
Compile the monitor greenlet tracer with Cython
-
Jason Madden authored
This makes things 54% faster. In fact, the monitor tracer is now faster than a trivial tracer implemented in python (settrace(lambda e, a: None)). +-------------------+-----------------+-----------------------------+ | Benchmark | 37_bench_tracer | 37_bench_tracer_cython_opt3 | +===================+=================+=============================+ | monitor tracer | 1.62 us | 739 ns: 2.20x faster (-54%) | +-------------------+-----------------+-----------------------------+ | max switch tracer | 3.06 us | 874 ns: 3.50x faster (-71%) | +-------------------+-----------------+-----------------------------+ | hub switch tracer | 2.16 us | 815 ns: 2.66x faster (-62%) | +-------------------+-----------------+-----------------------------+ Not significant (2): no tracer; trivial tracer
-
Jason Madden authored
Unoptimized still makes them 25% faster: +-------------------+-----------------+------------------------------+ | Benchmark | 37_bench_tracer | 37_bench_tracer_first_cython | +===================+=================+==============================+ | trivial tracer | 792 ns | 786 ns: 1.01x faster (-1%) | +-------------------+-----------------+------------------------------+ | monitor tracer | 1.62 us | 1.24 us: 1.31x faster (-24%) | +-------------------+-----------------+------------------------------+ | max switch tracer | 3.06 us | 1.89 us: 1.62x faster (-38%) | +-------------------+-----------------+------------------------------+ | hub switch tracer | 2.16 us | 1.68 us: 1.29x faster (-22%) | +-------------------+-----------------+------------------------------+
-
Jason Madden authored
Current numbers on 3.7b3: no tracer: Mean +- std dev: 414 ns +- 10 ns trivial tracer: Mean +- std dev: 792 ns +- 16 ns monitor tracer: Mean +- std dev: 1.62 us +- 0.12 us max switch tracer: Mean +- std dev: 3.06 us +- 0.12 us hub switch tracer: Mean +- std dev: 2.16 us +- 0.04 us
-
Jason Madden authored
Fix a typo [skip ci]
-
Felix Yan authored
-
- 20 Apr, 2018 3 commits
-
-
Jason Madden authored
Make the libuv run QUEUE part of the loop.
-
Jason Madden authored
Benchmarking (link in the email) showed that malloc/free had substantial and widely varying overhead. I didn't really see much of a difference in the gevent benchmarks, but I didn't run them all. However, if any patch gets upstreamed, it will probably be something like this. The link referenced in the email contains the discussion on the libuv mailing list.
-
Jason Madden authored
* Make the monitor thread survive a fork. * Add coverage for the new get_process. * psutil is not on windows, move the test to a protected location. * No, really.
-
- 19 Apr, 2018 7 commits
-
-
Jason Madden authored
Add gevent.util.assert_switches
-
-
Jason Madden authored
Based on refactoring existing code in _monitor.py Flexibly allows checking for any switching, switches that take longer than a set amount of time, or switches that exceed a time limit between getting back to the hub. Fixes #1182.
-
Jason Madden authored
Update to libuv 1.20.1
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
-
- 18 Apr, 2018 4 commits
-
-
Jason Madden authored
-
Jason Madden authored
-
Jason Madden authored
Update libuv to 1.20
-
Jason Madden authored
-