diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2023-03-13 21:55:35 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-03-13 21:55:35 +0100 |
| commit | e670379b57b261e3ed233b6793add42008f424ea (patch) | |
| tree | 0690dbe33fb70594aaefeb6579fb5b2ac4c1a317 | |
| parent | 8efa635b40ce6569e12f4988b7a9bcb7f3f0ed0c (diff) | |
| parent | 318be2bee9259852bc95728269916a45f59fa5aa (diff) | |
| download | rust-e670379b57b261e3ed233b6793add42008f424ea.tar.gz rust-e670379b57b261e3ed233b6793add42008f424ea.zip | |
Rollup merge of #108419 - tgross35:atomic-as-ptr, r=m-ou-se
Stabilize `atomic_as_ptr`
Fixes #66893
This stabilizes the `as_ptr` methods for atomics. The stabilization feature gate used here is `atomic_as_ptr` which supersedes `atomic_mut_ptr` to match the change in https://github.com/rust-lang/rust/pull/107736.
This needs FCP.
New stable API:
```rust
impl AtomicBool {
pub const fn as_ptr(&self) -> *mut bool;
}
impl AtomicI32 {
pub const fn as_ptr(&self) -> *mut i32;
}
// Includes all other atomic types
impl<T> AtomicPtr<T> {
pub const fn as_ptr(&self) -> *mut *mut T;
}
```
r? libs-api
``@rustbot`` label +needs-fcp
| -rw-r--r-- | library/core/src/sync/atomic.rs | 13 | ||||
| -rw-r--r-- | library/std/src/lib.rs | 1 |
2 files changed, 7 insertions, 7 deletions
diff --git a/library/core/src/sync/atomic.rs b/library/core/src/sync/atomic.rs index 040a59184a6..123561873a6 100644 --- a/library/core/src/sync/atomic.rs +++ b/library/core/src/sync/atomic.rs @@ -960,6 +960,7 @@ impl AtomicBool { /// ```ignore (extern-declaration) /// # fn main() { /// use std::sync::atomic::AtomicBool; + /// /// extern "C" { /// fn my_atomic_op(arg: *mut bool); /// } @@ -971,7 +972,8 @@ impl AtomicBool { /// # } /// ``` #[inline] - #[unstable(feature = "atomic_mut_ptr", reason = "recently added", issue = "66893")] + #[stable(feature = "atomic_as_ptr", since = "CURRENT_RUSTC_VERSION")] + #[rustc_const_stable(feature = "atomic_as_ptr", since = "CURRENT_RUSTC_VERSION")] pub const fn as_ptr(&self) -> *mut bool { self.v.get().cast() } @@ -1890,7 +1892,6 @@ impl<T> AtomicPtr<T> { /// # Examples /// /// ```ignore (extern-declaration) - /// #![feature(atomic_mut_ptr)] /// use std::sync::atomic::AtomicPtr; /// /// extern "C" { @@ -1906,7 +1907,8 @@ impl<T> AtomicPtr<T> { /// } /// ``` #[inline] - #[unstable(feature = "atomic_mut_ptr", reason = "recently added", issue = "66893")] + #[stable(feature = "atomic_as_ptr", since = "CURRENT_RUSTC_VERSION")] + #[rustc_const_stable(feature = "atomic_as_ptr", since = "CURRENT_RUSTC_VERSION")] pub const fn as_ptr(&self) -> *mut *mut T { self.p.get() } @@ -2859,9 +2861,8 @@ macro_rules! atomic_int { /// # } /// ``` #[inline] - #[unstable(feature = "atomic_mut_ptr", - reason = "recently added", - issue = "66893")] + #[stable(feature = "atomic_as_ptr", since = "CURRENT_RUSTC_VERSION")] + #[rustc_const_stable(feature = "atomic_as_ptr", since = "CURRENT_RUSTC_VERSION")] pub const fn as_ptr(&self) -> *mut $int_type { self.v.get() } diff --git a/library/std/src/lib.rs b/library/std/src/lib.rs index 7837dd276d2..4e7b6080835 100644 --- a/library/std/src/lib.rs +++ b/library/std/src/lib.rs @@ -274,7 +274,6 @@ #![feature(utf8_chunks)] // // Library features (core): -#![feature(atomic_mut_ptr)] #![feature(char_internals)] #![feature(core_intrinsics)] #![feature(duration_constants)] |
