本文簡要介紹rust語言中 std::sync::atomic::AtomicU64.as_mut_ptr
的用法。
用法
pub fn as_mut_ptr(&self) -> *mut u64
返回指向基礎整數的可變指針。
對結果整數進行非原子讀取和寫入可能是數據競爭。此方法對 FFI 非常有用,其中函數簽名可能使用 *mut u64
而不是 &AtomicU64
。
從共享引用返回 *mut
指針到該原子是安全的,因為原子類型具有內部可變性。原子的所有修改都會通過共享引用更改值,並且隻要使用原子操作就可以安全地進行更改。對返回的原始指針的任何使用都需要 unsafe
塊,並且仍然必須遵守相同的限製:對其的操作必須是原子的。
例子
use std::sync::atomic::AtomicU64;
extern "C" {
fn my_atomic_op(arg: *mut u64);
}
let mut atomic = AtomicU64::new(1);
unsafe {
my_atomic_op(atomic.as_mut_ptr());
}
相關用法
- Rust AtomicU64.into_inner用法及代碼示例
- Rust AtomicU64.fetch_update用法及代碼示例
- Rust AtomicU64.fetch_or用法及代碼示例
- Rust AtomicU64.compare_exchange用法及代碼示例
- Rust AtomicU64.new用法及代碼示例
- Rust AtomicU64.fetch_and用法及代碼示例
- Rust AtomicU64.get_mut用法及代碼示例
- Rust AtomicU64.from_mut用法及代碼示例
- Rust AtomicU64.fetch_sub用法及代碼示例
- Rust AtomicU64.fetch_max用法及代碼示例
- Rust AtomicU64.fetch_min用法及代碼示例
- Rust AtomicU64.fetch_nand用法及代碼示例
- Rust AtomicU64.fetch_xor用法及代碼示例
- Rust AtomicU64.compare_exchange_weak用法及代碼示例
- Rust AtomicU64.load用法及代碼示例
- Rust AtomicU64.swap用法及代碼示例
- Rust AtomicU64.fetch_add用法及代碼示例
- Rust AtomicU64.store用法及代碼示例
- Rust AtomicU64.compare_and_swap用法及代碼示例
- Rust AtomicU8.fetch_sub用法及代碼示例
- Rust AtomicU32.fetch_min用法及代碼示例
- Rust AtomicU8.fetch_or用法及代碼示例
- Rust AtomicUsize.load用法及代碼示例
- Rust AtomicU16.into_inner用法及代碼示例
- Rust AtomicU16.from_mut用法及代碼示例
注:本文由純淨天空篩選整理自rust-lang.org大神的英文原創作品 std::sync::atomic::AtomicU64.as_mut_ptr。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。