Lines Matching full:arc

37 //! use kernel::sync::Arc;
53 //! fn new(value: i32) -> Result<Arc<Self>> {
54 //! Arc::pin_init(pin_init!(MyStruct {
62 //! type Pointer = Arc<MyStruct>;
64 //! fn run(this: Arc<MyStruct>) {
71 //! fn print_later(val: Arc<MyStruct>) {
80 //! use kernel::sync::Arc;
100 //! fn new(value_1: i32, value_2: i32) -> Result<Arc<Self>> {
101 //! Arc::pin_init(pin_init!(MyStruct {
111 //! type Pointer = Arc<MyStruct>;
113 //! fn run(this: Arc<MyStruct>) {
119 //! type Pointer = Arc<MyStruct>;
121 //! fn run(this: Arc<MyStruct>) {
126 //! fn print_1_later(val: Arc<MyStruct>) {
127 //! let _ = workqueue::system().enqueue::<Arc<MyStruct>, 1>(val);
130 //! fn print_2_later(val: Arc<MyStruct>) {
131 //! let _ = workqueue::system().enqueue::<Arc<MyStruct>, 2>(val);
137 use crate::{bindings, prelude::*, sync::Arc, sync::LockClassKey, types::Opaque};
293 /// This trait is implemented by `Pin<Box<T>>` and `Arc<T>`, and is mainly intended to be
321 /// The pointer type that this struct is wrapped in. This will typically be `Arc<Self>` or
477 /// use kernel::sync::Arc;
517 unsafe impl<T, const ID: u64> WorkItemPointer<ID> for Arc<T> implementation
525 // SAFETY: This computes the pointer that `__enqueue` got from `Arc::into_raw`. in run()
527 // SAFETY: This pointer comes from `Arc::into_raw` and we've been given back ownership. in run()
528 let arc = unsafe { Arc::from_raw(ptr) }; in run() localVariable
530 T::run(arc) in run()
534 unsafe impl<T, const ID: u64> RawWorkItem<ID> for Arc<T> implementation
546 let ptr = Arc::into_raw(self).cast_mut(); in __enqueue()
548 // SAFETY: Pointers into an `Arc` point at a valid value. in __enqueue()
557 Err(unsafe { Arc::from_raw(ptr) }) in __enqueue()
570 // SAFETY: This computes the pointer that `__enqueue` got from `Arc::into_raw`. in run()
572 // SAFETY: This pointer comes from `Arc::into_raw` and we've been given back ownership. in run()