Repository navigation
docs: say how an integration guarantees release after a cancelled child close - #728
Merged
Merged
Conversation
There was a problem hiding this comment.
Benchmark
Details
| Benchmark suite | Current: ed9292b | Previous: 60ec39c | Ratio |
|---|---|---|---|
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type |
3329686.771362816 iter/sec (stddev: 1.0163376259967693e-8) |
3358503.4132609633 iter/sec (stddev: 1.1448438679961073e-8) |
1.01 |
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry |
3271321.5085610226 iter/sec (stddev: 1.3671880439731652e-8) |
3301106.610167273 iter/sec (stddev: 1.1336960239553806e-8) |
1.01 |
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve |
15883.351434284905 iter/sec (stddev: 0.00005259468171636178) |
16034.085394974722 iter/sec (stddev: 0.00005458547255657771) |
1.01 |
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached |
12603.13856572081 iter/sec (stddev: 0.0001230989860704421) |
12624.798511366014 iter/sec (stddev: 0.0001515374756980139) |
1.00 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] |
479.513147605982 iter/sec (stddev: 0.00003528600475009409) |
455.2021472552926 iter/sec (stddev: 0.00005041620491597485) |
0.95 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] |
474.7583310361577 iter/sec (stddev: 0.000044199840880603166) |
459.71509004060306 iter/sec (stddev: 0.00017710123986099986) |
0.97 |
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] |
437.58692393817154 iter/sec (stddev: 0.00007173519725340104) |
402.8498207122095 iter/sec (stddev: 0.0002823440724655318) |
0.92 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] |
13645.565089059306 iter/sec (stddev: 0.000009497158115577982) |
12686.756992164215 iter/sec (stddev: 0.00001967914744629927) |
0.93 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] |
6448.244562205542 iter/sec (stddev: 0.000013972870209813354) |
6475.64835134297 iter/sec (stddev: 0.000025601649023647035) |
1.00 |
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] |
3350.276706340477 iter/sec (stddev: 0.00004202609767696541) |
3355.0437281022187 iter/sec (stddev: 0.00004439303325953144) |
1.00 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] |
10069.06201817803 iter/sec (stddev: 0.00001013703484951042) |
10183.643337591653 iter/sec (stddev: 0.000009008327904668939) |
1.01 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] |
4095.0295282258808 iter/sec (stddev: 0.000032879075993007515) |
4235.554728842193 iter/sec (stddev: 0.000020356958741518294) |
1.03 |
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] |
2030.5197954686346 iter/sec (stddev: 0.00004295239139286838) |
2028.237082863968 iter/sec (stddev: 0.00003794167812795437) |
1.00 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[1] |
41076.983743659766 iter/sec (stddev: 0.000004373722497062743) |
39564.17424519731 iter/sec (stddev: 0.000005174374114934073) |
0.96 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[2] |
15553.599258323806 iter/sec (stddev: 0.000012343085740759584) |
15364.000048192043 iter/sec (stddev: 0.000013417025572041979) |
0.99 |
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[4] |
5882.402537913368 iter/sec (stddev: 0.00003146160659411793) |
6010.488603150746 iter/sec (stddev: 0.00002846696618051672) |
1.02 |
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container |
1605109.126556858 iter/sec (stddev: 3.3676029382964675e-8) |
1591537.7302301684 iter/sec (stddev: 2.6681367985706763e-8) |
0.99 |
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope |
1704391.7445540316 iter/sec (stddev: 1.8089075218954514e-8) |
1704565.4057079838 iter/sec (stddev: 2.40977719244378e-8) |
1.00 |
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch |
3247.92814923127 iter/sec (stddev: 0.00001024384557051492) |
3300.5437722979327 iter/sec (stddev: 0.000010455322969632931) |
1.02 |
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control |
57225.018506820576 iter/sec (stddev: 0.000001971060641454416) |
58424.80148923944 iter/sec (stddev: 0.0000018127274924436301) |
1.02 |
benchmarks/test_guard_lifecycle.py::test_g7b_request_cycle_sync |
421957.57511897583 iter/sec (stddev: 1.0635943497341685e-7) |
431822.03681158135 iter/sec (stddev: 1.1586337885933588e-7) |
1.02 |
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale |
63635.75372571954 iter/sec (stddev: 0.0000016768233535717495) |
64428.26251924399 iter/sec (stddev: 0.0000015487221962073072) |
1.01 |
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers |
604.6034300261133 iter/sec (stddev: 0.0008223483368852818) |
591.8171591272641 iter/sec (stddev: 0.0009615215467000859) |
0.98 |
benchmarks/test_guard_resolve.py::test_g1_transient_resolve |
2171261.744085378 iter/sec (stddev: 2.822235832966229e-8) |
2160753.4676934173 iter/sec (stddev: 2.816643291687293e-8) |
1.00 |
benchmarks/test_guard_resolve.py::test_g2_cached_resolve |
3542208.0119874896 iter/sec (stddev: 1.7682851138607183e-8) |
3597463.284739677 iter/sec (stddev: 1.1265360803279236e-8) |
1.02 |
benchmarks/test_guard_resolve.py::test_g3_deep_chain |
773776.7672606192 iter/sec (stddev: 3.906215025998377e-8) |
778404.2028848502 iter/sec (stddev: 4.728927452304181e-8) |
1.01 |
benchmarks/test_guard_resolve.py::test_g4_wide_resolve |
473485.52104901156 iter/sec (stddev: 3.808731557397641e-7) |
474849.64776240895 iter/sec (stddev: 3.990446335200551e-7) |
1.00 |
benchmarks/test_guard_resolve.py::test_g5_cross_scope |
1915217.4415868644 iter/sec (stddev: 2.4422832723920374e-8) |
1960314.79910946 iter/sec (stddev: 3.6160293523698136e-8) |
1.02 |
benchmarks/test_guard_resolve.py::test_g9_context_resolve |
1363590.0790486874 iter/sec (stddev: 1.4079989953393253e-7) |
1399285.4828539586 iter/sec (stddev: 1.4035655215356732e-7) |
1.03 |
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve |
824720.4682147484 iter/sec (stddev: 3.701881110837212e-8) |
823992.6216404204 iter/sec (stddev: 8.440860522489723e-8) |
1.00 |
benchmarks/test_guard_resolve.py::test_g18_alias_hop |
3472987.485364302 iter/sec (stddev: 1.467555078604862e-8) |
3616094.4408134823 iter/sec (stddev: 1.2506952886222335e-8) |
1.04 |
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain |
35914.791152341364 iter/sec (stddev: 0.00001873645694375592) |
35942.47808939437 iter/sec (stddev: 0.00001815581053924702) |
1.00 |
benchmarks/test_guard_validate.py::test_g11_validate_wide |
21335.31249175921 iter/sec (stddev: 0.00002304494405560888) |
19788.077995655785 iter/sec (stddev: 0.00020106440195523338) |
0.93 |
This comment was automatically generated by workflow using github-action-benchmark.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to closing #723 as not planned. The "Writing an integration" lifecycle rules now point at the documented "Cancelled close" behavior and say what an integration does when it must release every finalizer anyway: catch the cancellation, close the child again with cancellation shielded, and re-raise.