The source project of this merge request has been removed.
Use more efficient ArcSwap instead of RwLock to manage bounding box trees.
This also removes the not strictly necessary indirection of storing Arc<SegmentTree>
instead of SegmentTree
which we actually forgot to make use of in the previous version based on RwLock
, i.e. we held the read lock for the whole time it took to query the tree instead of only to clone the inner Arc
. This version will now clone the whole hash table via Arc::make_mut
when changes are made but only does two Arc::clone
per query and does not acquire any locks.