linux-yocto/rust/kernel/sync
Alice Ryhl a0a4e17013 rust: sync: add Arc::into_unique_or_drop
Decrement the refcount of an `Arc`, but handle the case where it hits
zero by taking ownership of the now-unique `Arc`, instead of destroying
and deallocating it.

This is a dependency of the linked list that Rust Binder uses. The
linked list uses this method as part of its `ListArc` abstraction [1].

Boqun Feng has authored the examples.

Reviewed-by: Benno Lossin <benno.lossin@proton.me>
Reviewed-by: Boqun Feng <boqun.feng@gmail.com>
Link: https://lore.kernel.org/r/20240402-linked-list-v1-1-b1c59ba7ae3b@google.com [1]
Co-developed-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
Signed-off-by: Alice Ryhl <aliceryhl@google.com>
Link: https://lore.kernel.org/r/20240402-arc-for-list-v4-2-54db6440a9a9@google.com
[ Replace `try_new` with `new` in example since we now have the new
  allocation APIs. - Miguel ]
Signed-off-by: Miguel Ojeda <ojeda@kernel.org>
2024-05-05 18:04:31 +02:00
..
arc rust: sync: arc: Implement Arc<dyn Any + Send + Sync>::downcast() 2023-04-10 23:55:43 +02:00
lock rust: init: update init module to take allocation flags 2024-04-16 22:50:04 +02:00
arc.rs rust: sync: add Arc::into_unique_or_drop 2024-05-05 18:04:31 +02:00
condvar.rs rust: init: update init module to take allocation flags 2024-04-16 22:50:04 +02:00
lock.rs rust: kernel: add doclinks 2024-02-18 21:22:27 +01:00
locked_by.rs rust: locked_by: shorten doclink preview 2024-02-18 21:22:27 +01:00