-
Notifications
You must be signed in to change notification settings - Fork 13.6k
Open
Labels
C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCS-tracking-unimplementedStatus: The feature has not been implemented.Status: The feature has not been implemented.T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.
Description
Feature gate: #![feature(mutex_data_ptr)]
, #![feature(rwlock_data_ptr)]
This is a tracking issue for allowing unguarded access to the inner value of a Mutex
or RwLock
. Previous discussion here: rust-lang/libs-team#531
Public API
// std::sync
impl<T: ?Sized> Mutex<T> {
pub fn data_ptr(&self) -> *mut T;
}
impl<T: ?Sized> RwLock<T> {
pub fn data_ptr(&self) -> *mut T;
}
Steps / History
(Remember to update the S-tracking-*
label when checking boxes.)
- Implementation: Add data_ptr method to Mutex and RwLock #140369
- Add examples to documentation
- Final comment period (FCP)1
- Stabilization PR
Unresolved Questions
- Return a
LockResult
or not? - Return
*mut T
like existing APIs (Cell::as_ptr
/MaybeUninit::as[_mut]_ptr
/Vec::as_ptr
/ ...) or be more precise and returnNonNull<T>
?
Footnotes
Metadata
Metadata
Assignees
Labels
C-tracking-issueCategory: An issue tracking the progress of sth. like the implementation of an RFCCategory: An issue tracking the progress of sth. like the implementation of an RFCS-tracking-unimplementedStatus: The feature has not been implemented.Status: The feature has not been implemented.T-libs-apiRelevant to the library API team, which will review and decide on the PR/issue.Relevant to the library API team, which will review and decide on the PR/issue.