Skip to content

Conversation

@ameligrana
Copy link
Member

@ameligrana ameligrana commented Jan 20, 2026

Fixes #492

Prevent multiple uses of a closed query by setting the lock to true.
@ameligrana
Copy link
Member Author

this is wrong I guess, so this seems an edge case we don't catch with our tests. Worth adding one

@codecov
Copy link

codecov bot commented Jan 20, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@github-actions
Copy link
Contributor

⚠️ 8 benchmark regressions detected!

Click to expand benchmark results

Time is per entity/N, allocations are totals. Allocations are only shown for current.

N       Time main             Time curr           Factor         Allocs         Bytes    
query_create
1000 2.97ns 2.97ns 1.00 0 0
query_create_filter
1000 2.96ns 2.97ns 1.00 0 0
query_posvel_1k_arch
100 7.35ns 7.40ns 1.01 0 0
1000 10.38ns 10.66ns 1.03 0 0
10000 2.57ns 2.85ns ⚠️ 1.11 0 0
100000 1.04ns 1.10ns 1.06 0 0
1000000 0.74ns 0.82ns ⚠️ 1.11 0 0
query_posvel_1k_arch_cached
100 7.21ns 7.24ns 1.00 0 0
1000 10.05ns 10.15ns 1.01 0 0
10000 2.56ns 2.73ns 1.07 0 0
100000 1.06ns 1.00ns 0.94 0 0
1000000 0.79ns 0.78ns 1.00 0 0
query_posvel_32_arch
100 2.29ns 2.26ns 0.99 0 0
1000 0.72ns 0.70ns 0.98 0 0
10000 0.44ns 0.45ns 1.02 0 0
100000 0.63ns 0.66ns 1.04 0 0
1000000 0.61ns 0.63ns 1.05 0 0
query_posvel_cold
100 0.77ns 0.80ns 1.05 0 0
1000 0.38ns 0.38ns 1.01 0 0
10000 0.39ns 0.39ns 0.99 0 0
100000 0.65ns 0.65ns 1.00 0 0
1000000 0.81ns 0.89ns ⚠️ 1.10 0 0
query_posvel_fields
100 0.39ns 0.39ns 1.01 0 0
1000 0.23ns 0.23ns 1.00 0 0
10000 0.33ns 0.32ns 1.00 0 0
100000 0.40ns 0.51ns ⚠️ 1.26 0 0
1000000 0.57ns 0.61ns 1.07 0 0
query_posvel_fields_broadcast
100 0.86ns 0.85ns 1.00 0 0
1000 0.70ns 0.70ns 1.00 0 0
10000 0.80ns 0.79ns 0.98 0 0
100000 0.82ns 1.02ns ⚠️ 1.24 0 0
1000000 1.46ns 1.46ns 1.00 0 0
query_posvel_hot
100 0.39ns 0.40ns 1.01 0 0
1000 0.24ns 0.24ns 1.00 0 0
10000 0.33ns 0.32ns 0.98 0 0
100000 0.40ns 0.51ns ⚠️ 1.26 0 0
1000000 0.55ns 0.59ns 1.07 0 0
query_posvel_soa
100 1.00ns 0.99ns 0.99 0 0
1000 0.82ns 0.82ns 1.00 0 0
10000 0.79ns 0.79ns 1.00 0 0
100000 0.80ns 0.78ns 0.98 0 0
1000000 0.83ns 0.83ns 1.00 0 0
query_posvel_soa_unpack
100 0.43ns 0.42ns 0.99 0 0
1000 0.24ns 0.24ns 1.00 0 0
10000 0.33ns 0.33ns 0.99 0 0
100000 0.40ns 0.51ns ⚠️ 1.26 0 0
1000000 0.54ns 0.60ns ⚠️ 1.11 0 0
world_add_remove_1
100 51.68ns 51.68ns 1.00 0 0
10000 52.82ns 52.67ns 1.00 0 0
world_add_remove_1_batch
100 6.58ns 6.39ns 0.97 0 0
10000 6.13ns 6.12ns 1.00 0 0
world_add_remove_1_large
100 55.98ns 56.21ns 1.00 0 0
10000 56.84ns 57.06ns 1.00 0 0
world_add_remove_1_soa
100 57.92ns 57.57ns 0.99 0 0
10000 59.24ns 58.92ns 0.99 0 0
world_add_remove_8
100 101.59ns 101.91ns 1.00 0 0
10000 103.27ns 103.87ns 1.01 0 0
world_add_remove_8_large
100 115.15ns 116.05ns 1.01 0 0
10000 117.02ns 116.92ns 1.00 0 0
world_add_remove_8_soa
100 129.24ns 136.94ns 1.06 0 0
10000 131.79ns 139.25ns 1.06 0 0
world_copy_entity_5
100 28.12ns 28.22ns 1.00 0 0
10000 27.95ns 28.44ns 1.02 0 0
world_get_1
100 1.05ns 1.03ns 0.99 0 0
10000 0.95ns 0.94ns 0.99 0 0
world_get_1_soa
100 1.62ns 1.62ns 1.00 0 0
10000 1.54ns 1.53ns 1.00 0 0
world_get_5
100 3.24ns 3.27ns 1.01 0 0
10000 3.17ns 3.19ns 1.01 0 0
world_get_rel
100 0.97ns 0.93ns 0.96 0 0
10000 0.87ns 0.83ns 0.96 0 0
world_new_entities_1
100 3.04ns 3.14ns 1.03 0 0
10000 2.38ns 2.44ns 1.03 0 0
world_new_entities_1_def
100 3.17ns 3.31ns 1.04 0 0
10000 2.49ns 2.61ns 1.05 0 0
world_new_entities_5
100 5.64ns 5.61ns 0.99 0 0
10000 4.56ns 4.66ns 1.02 0 0
world_new_entities_5_def
100 5.54ns 5.54ns 1.00 0 0
10000 4.55ns 4.89ns 1.08 0 0
world_new_entity_1
100 14.96ns 15.10ns 1.01 0 0
10000 14.79ns 14.90ns 1.01 0 0
world_new_entity_1_rel
100 36.90ns 37.14ns 1.01 0 0
10000 36.37ns 36.51ns 1.00 0 0
world_new_entity_1_soa
100 17.33ns 17.03ns 0.98 0 0
10000 17.28ns 16.93ns 0.98 0 0
world_new_entity_5
100 26.45ns 26.95ns 1.02 0 0
10000 27.33ns 27.45ns 1.01 0 0
world_new_entity_5_rel
100 54.40ns 56.80ns 1.04 0 0
10000 54.16ns 56.55ns 1.04 0 0
world_new_entity_5_soa
100 39.84ns 36.23ns 0.92 0 0
10000 40.68ns 36.84ns 0.91 0 0
world_posvel
100 2.84ns 2.84ns 1.00 0 0
1000 2.83ns 2.83ns 1.00 0 0
10000 2.90ns 2.89ns 1.00 0 0
100000 2.89ns 2.89ns 1.00 0 0
world_remove_entities_5
100 2.07ns 2.10ns 1.02 0 0
10000 0.97ns 0.98ns 1.01 0 0
world_remove_entity_5
100 22.64ns 22.61ns 1.00 0 0
10000 22.36ns 22.33ns 1.00 0 0
world_resource
1 7.06ns 7.38ns 1.05 0 0
world_set_1
100 2.91ns 2.91ns 1.00 0 0
10000 3.00ns 3.00ns 1.00 0 0
world_set_1_soa
100 2.71ns 2.73ns 1.00 0 0
10000 2.78ns 2.79ns 1.00 0 0
world_set_5
100 8.08ns 8.12ns 1.01 0 0
10000 8.82ns 8.80ns 1.00 0 0
world_set_rel
100 47.55ns 47.69ns 1.00 0 0
10000 42.07ns 42.31ns 1.01 0 0
world_set_rel_batch
100 3.74ns 3.74ns 1.00 0 0
10000 2.36ns 2.36ns 1.00 0 0
world_update_1
100 2.52ns 2.53ns 1.00 0 0
10000 2.61ns 2.60ns 1.00 0 0
world_update_5
100 9.70ns 9.71ns 1.00 0 0
10000 10.14ns 10.14ns 1.00 0 0

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.

Make close! a no-op for fully iterated queries?

2 participants