v1: https://lore.kernel.org/rust-for-linux/[email protected]/
Changes since v1: * Rebased on 7.2-rc1 * As Alice pointed out [5], RcuFreeBox::with_rcu() should return a type that disallows extending the RCU read-side critical section to outlive the guard. As for now, no user needs with_rcu(), hence remove it. * Includes a not-for-merge example based on Alice's patch. v1's cover letter ----------------- (this series is based on Alice's RFC [1] and discussion around Philipp's patches [2], [3]) As an easy way to provide RCU-protected allocation, two major types are provided: - `RcuBox<T, A>`, inner T will be dropped and after a grace period. Users: binder with maple_tree and dma_fence. - `RcuFreeBox<T, A>`, inner T will be cleaned up immmediately and freed after a grace period. (Name suggestion is welcome). This is an attempt to consolidate Alice's `PollCondVarBox` [4] into a generic implementation, InPlaceInit support is still missing, but I want to get some feedback on the trait `RcuFreeSafe`. [1]: https://lore.kernel.org/rust-for-linux/[email protected]/ [2]: https://lore.kernel.org/rust-for-linux/[email protected]/ [3]: https://lore.kernel.org/rust-for-linux/[email protected]/ [4]: https://lore.kernel.org/rust-for-linux/[email protected]/ [5]: https://lore.kernel.org/rust-for-linux/[email protected]/ -- 2.50.1 (Apple Git-155)

