* [PATCH v2] rust: sync: document `PhantomData` in `Arc`
@ 2024-11-07 10:36 Tamir Duberstein
2024-12-03 17:01 ` Tamir Duberstein
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Tamir Duberstein @ 2024-11-07 10:36 UTC (permalink / raw)
To: Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo,
Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl,
Trevor Gross
Cc: rust-for-linux, linux-kernel, Tamir Duberstein
Add a comment explaining the relevant semantics of `PhantomData`. This
should help future readers who may, as I did, assume that this field is
redundant at first glance.
Signed-off-by: Tamir Duberstein <tamird@gmail.com>
---
Changes in v2:
- Reworked as a new comment (Boqun Feng, Miguel Ojeda).
- Link to v1: https://lore.kernel.org/r/20241104-simplify-arc-v1-1-a4ffc290f905@gmail.com
---
rust/kernel/sync/arc.rs | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/rust/kernel/sync/arc.rs b/rust/kernel/sync/arc.rs
index db9da352d588f65348aa7a5204abbb165b70197f..547d56766f507afe4bc733f7f1b465a55b64312a 100644
--- a/rust/kernel/sync/arc.rs
+++ b/rust/kernel/sync/arc.rs
@@ -127,6 +127,14 @@
/// ```
pub struct Arc<T: ?Sized> {
ptr: NonNull<ArcInner<T>>,
+ // NB: this informs dropck that objects of type `ArcInner<T>` may be used in `<Arc<T> as
+ // Drop>::drop`. Note that dropck already assumes that objects of type `T` may be used in
+ // `<Arc<T> as Drop>::drop` and the distinction between `T` and `ArcInner<T>` is not presently
+ // meaningful with respect to dropck - but this may change in the future so this is left here
+ // out of an abundance of caution.
+ //
+ // See https://doc.rust-lang.org/nomicon/phantom-data.html#generic-parameters-and-drop-checking
+ // for more detail on the semantics of dropck in the presence of `PhantomData`.
_p: PhantomData<ArcInner<T>>,
}
---
base-commit: ae7851c29747fa3765ecb722fe722117a346f988
change-id: 20241104-simplify-arc-70c3574b5fac
Best regards,
--
Tamir Duberstein <tamird@gmail.com>
^ permalink raw reply related [flat|nested] 4+ messages in thread* Re: [PATCH v2] rust: sync: document `PhantomData` in `Arc`
2024-11-07 10:36 [PATCH v2] rust: sync: document `PhantomData` in `Arc` Tamir Duberstein
@ 2024-12-03 17:01 ` Tamir Duberstein
2024-12-03 17:05 ` Alice Ryhl
2024-12-17 23:53 ` Miguel Ojeda
2 siblings, 0 replies; 4+ messages in thread
From: Tamir Duberstein @ 2024-12-03 17:01 UTC (permalink / raw)
To: Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo,
Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl,
Trevor Gross
Cc: rust-for-linux, linux-kernel
Gentle bump.
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] rust: sync: document `PhantomData` in `Arc`
2024-11-07 10:36 [PATCH v2] rust: sync: document `PhantomData` in `Arc` Tamir Duberstein
2024-12-03 17:01 ` Tamir Duberstein
@ 2024-12-03 17:05 ` Alice Ryhl
2024-12-17 23:53 ` Miguel Ojeda
2 siblings, 0 replies; 4+ messages in thread
From: Alice Ryhl @ 2024-12-03 17:05 UTC (permalink / raw)
To: Tamir Duberstein
Cc: Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo,
Björn Roy Baron, Benno Lossin, Andreas Hindborg,
Trevor Gross, rust-for-linux, linux-kernel
On Thu, Nov 7, 2024 at 11:36 AM Tamir Duberstein <tamird@gmail.com> wrote:
>
> Add a comment explaining the relevant semantics of `PhantomData`. This
> should help future readers who may, as I did, assume that this field is
> redundant at first glance.
>
> Signed-off-by: Tamir Duberstein <tamird@gmail.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v2] rust: sync: document `PhantomData` in `Arc`
2024-11-07 10:36 [PATCH v2] rust: sync: document `PhantomData` in `Arc` Tamir Duberstein
2024-12-03 17:01 ` Tamir Duberstein
2024-12-03 17:05 ` Alice Ryhl
@ 2024-12-17 23:53 ` Miguel Ojeda
2 siblings, 0 replies; 4+ messages in thread
From: Miguel Ojeda @ 2024-12-17 23:53 UTC (permalink / raw)
To: Tamir Duberstein
Cc: Miguel Ojeda, Alex Gaynor, Boqun Feng, Gary Guo,
Björn Roy Baron, Benno Lossin, Andreas Hindborg, Alice Ryhl,
Trevor Gross, rust-for-linux, linux-kernel
On Thu, Nov 7, 2024 at 11:36 AM Tamir Duberstein <tamird@gmail.com> wrote:
>
> Add a comment explaining the relevant semantics of `PhantomData`. This
> should help future readers who may, as I did, assume that this field is
> redundant at first glance.
>
> Signed-off-by: Tamir Duberstein <tamird@gmail.com>
Applied to `rust-next` -- thanks everyone!
Cheers,
Miguel
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2024-12-17 23:53 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-07 10:36 [PATCH v2] rust: sync: document `PhantomData` in `Arc` Tamir Duberstein
2024-12-03 17:01 ` Tamir Duberstein
2024-12-03 17:05 ` Alice Ryhl
2024-12-17 23:53 ` Miguel Ojeda
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).