Skip to content

docs: say the fastmcp, litestar and faststream child close is shielded and bounded - #731

Merged
lesnik512 merged 1 commit into
mainfrom
docs/shielded-close-more
Oct 19, 2026
Merged

lesnik512 merged 1 commit into
mainfrom
docs/shielded-close-more

Conversation

@lesnik512

Copy link
Copy Markdown
Member

Documents modern-di-fastmcp 4.0.4 (modern-python/modern-di-fastmcp#9), modern-di-litestar 4.2.2 (modern-python/modern-di-litestar#87) and modern-di-faststream 4.2.3 (modern-python/modern-di-faststream#89), the same way #729 did for starlette and fastapi. Each page now says the child close is shielded from cancellation, names the case that cancels it in that framework, and says a close running longer than 10 seconds is abandoned with a warning on the integration's logger.

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark

Details
Benchmark suite Current: 5ca4d87 Previous: aec56c1 Ratio
benchmarks/test_guard_by_type.py::test_g16_resolve_by_type 4000609.212774368 iter/sec (stddev: 1.5936308175321384e-8) 3345521.0665840385 iter/sec (stddev: 1.3108313055308741e-8) 0.84
benchmarks/test_guard_by_type.py::test_g17_resolve_by_type_large_registry 3996884.9877163316 iter/sec (stddev: 1.0545304491739299e-8) 3305069.262350677 iter/sec (stddev: 1.1938748661833066e-8) 0.83
benchmarks/test_guard_cold.py::test_g8_cold_first_resolve 18276.05951848232 iter/sec (stddev: 0.000051305364527207354) 15792.297675499685 iter/sec (stddev: 0.000055135012026666745) 0.86
benchmarks/test_guard_cold.py::test_g8b_cold_first_resolve_cached 14522.599151810531 iter/sec (stddev: 0.0001560800965383279) 12464.53414187393 iter/sec (stddev: 0.00013189261021614093) 0.86
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[1] 503.3669349758536 iter/sec (stddev: 0.000012046224006151703) 480.9288246610481 iter/sec (stddev: 0.000030065084584019833) 0.96
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[2] 510.1927473065935 iter/sec (stddev: 0.000022930186565442727) 466.19954272828903 iter/sec (stddev: 0.00004425345186723625) 0.91
benchmarks/test_guard_concurrency.py::test_g14_concurrent_cached_hit[4] 485.4667576214342 iter/sec (stddev: 0.00003635894637441141) 433.27457684441595 iter/sec (stddev: 0.00018440797549587438) 0.89
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[1] 16016.353765089685 iter/sec (stddev: 0.000007837021463703849) 12777.877575345634 iter/sec (stddev: 0.000007959026763802108) 0.80
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[2] 7525.341587832661 iter/sec (stddev: 0.000014897722886503436) 6203.2901940917745 iter/sec (stddev: 0.000013656541987689523) 0.82
benchmarks/test_guard_concurrency.py::test_g15_concurrent_first_resolve[4] 3940.3899127477143 iter/sec (stddev: 0.000033308256061790166) 3394.870644677747 iter/sec (stddev: 0.000038342645516870723) 0.86
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[1] 11722.509445467314 iter/sec (stddev: 0.000009733477641342005) 9276.41920325039 iter/sec (stddev: 0.000024242250596616354) 0.79
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[2] 5232.754215693073 iter/sec (stddev: 0.000018767192997746516) 4063.785584919081 iter/sec (stddev: 0.00007711626119610306) 0.78
benchmarks/test_guard_concurrency.py::test_g15b_concurrent_first_resolve_sibling_children[4] 2322.137656202984 iter/sec (stddev: 0.00005550239002112714) 2000.3226186982326 iter/sec (stddev: 0.000041546731812819814) 0.86
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[1] 42484.97448083071 iter/sec (stddev: 0.0000029884027275884083) 39897.94106624441 iter/sec (stddev: 0.000005429661873777475) 0.94
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[2] 16452.90684481961 iter/sec (stddev: 0.00001517960321153043) 12472.2038748527 iter/sec (stddev: 0.00001252551540264348) 0.76
benchmarks/test_guard_concurrency.py::test_g15c_worker_pool_floor_control[4] 6656.970050164922 iter/sec (stddev: 0.00002705496531747922) 5721.566271140017 iter/sec (stddev: 0.000033705967112404046) 0.86
benchmarks/test_guard_lifecycle.py::test_g6_build_child_container 1699987.19483678 iter/sec (stddev: 2.7670489866089464e-8) 1581034.3545710812 iter/sec (stddev: 3.8189929778769226e-8) 0.93
benchmarks/test_guard_lifecycle.py::test_g6b_build_child_container_auto_scope 1828515.9252819852 iter/sec (stddev: 1.611492913134885e-8) 1701976.8716696766 iter/sec (stddev: 1.7028797579324602e-8) 0.93
benchmarks/test_guard_lifecycle.py::test_g7_request_lifecycle_batch 3498.178943268111 iter/sec (stddev: 0.000008746775933122058) 3252.1554688769857 iter/sec (stddev: 0.000012672593387126658) 0.93
benchmarks/test_guard_lifecycle.py::test_g7c_event_loop_floor_control 58323.26403883299 iter/sec (stddev: 0.0000015083267223595722) 58116.82132724247 iter/sec (stddev: 0.0000019104000082225113) 1.00
benchmarks/test_guard_lifecycle.py::test_g7b_request_cycle_sync 451578.32835042785 iter/sec (stddev: 2.943947558422401e-7) 421555.45404970716 iter/sec (stddev: 8.945732145335626e-8) 0.93
benchmarks/test_guard_lifecycle.py::test_g13_teardown_at_scale 72205.18296844568 iter/sec (stddev: 0.0000014991191200333715) 64944.12020972738 iter/sec (stddev: 0.00000185685317692303) 0.90
benchmarks/test_guard_lifecycle.py::test_g13b_teardown_at_scale_async_no_finalizers 656.6419875282052 iter/sec (stddev: 0.0010396760410082422) 575.5071278747193 iter/sec (stddev: 0.001138575169421251) 0.88
benchmarks/test_guard_resolve.py::test_g1_transient_resolve 2392269.810711179 iter/sec (stddev: 3.93946085298649e-8) 2104995.2695494397 iter/sec (stddev: 2.811821230179277e-8) 0.88
benchmarks/test_guard_resolve.py::test_g2_cached_resolve 3817287.517933889 iter/sec (stddev: 9.527261302684491e-9) 3657379.7383176666 iter/sec (stddev: 1.1566915568580984e-8) 0.96
benchmarks/test_guard_resolve.py::test_g3_deep_chain 700227.5582003298 iter/sec (stddev: 1.5907203631883433e-7) 801186.7819569294 iter/sec (stddev: 4.8962409603676404e-8) 1.14
benchmarks/test_guard_resolve.py::test_g4_wide_resolve 481138.6434660771 iter/sec (stddev: 4.5654971520227763e-7) 479441.58096699585 iter/sec (stddev: 4.135332795129074e-7) 1.00
benchmarks/test_guard_resolve.py::test_g5_cross_scope 2065643.9973076296 iter/sec (stddev: 5.606531742271319e-8) 1928903.1379116236 iter/sec (stddev: 2.8366253893375806e-8) 0.93
benchmarks/test_guard_resolve.py::test_g9_context_resolve 1625817.3288529513 iter/sec (stddev: 1.5770105883583503e-7) 1422259.8457332284 iter/sec (stddev: 1.3852628693902344e-7) 0.87
benchmarks/test_guard_resolve.py::test_g12_override_active_resolve 919030.8543896683 iter/sec (stddev: 5.587482634006434e-8) 822559.280509675 iter/sec (stddev: 7.672187889510609e-8) 0.90
benchmarks/test_guard_resolve.py::test_g18_alias_hop 3891765.3358892906 iter/sec (stddev: 7.534026602955482e-9) 3614584.1240236084 iter/sec (stddev: 1.154424204095044e-8) 0.93
benchmarks/test_guard_validate.py::test_g10_validate_deep_chain 42701.684324655354 iter/sec (stddev: 0.000019021710087563605) 35935.620042983646 iter/sec (stddev: 0.000018104156463207697) 0.84
benchmarks/test_guard_validate.py::test_g11_validate_wide 24477.064847486614 iter/sec (stddev: 0.000025105797496126304) 19716.980490335623 iter/sec (stddev: 0.00020055110344201086) 0.81

This comment was automatically generated by workflow using github-action-benchmark.

@lesnik512
lesnik512 merged commit 5644031 into main Oct 19, 2026
12 checks passed
@lesnik512
lesnik512 deleted the docs/shielded-close-more branch October 19, 2026 05:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant