std: Stabilize APIs for the 1.9 release
This commit applies all stabilizations, renamings, and deprecations that the library team has decided on for the upcoming 1.9 release. All tracking issues have gone through a cycle-long "final comment period" and the specific APIs stabilized/deprecated are: Stable * `std::panic` * `std::panic::catch_unwind` (renamed from `recover`) * `std::panic::resume_unwind` (renamed from `propagate`) * `std::panic::AssertUnwindSafe` (renamed from `AssertRecoverSafe`) * `std::panic::UnwindSafe` (renamed from `RecoverSafe`) * `str::is_char_boundary` * `<*const T>::as_ref` * `<*mut T>::as_ref` * `<*mut T>::as_mut` * `AsciiExt::make_ascii_uppercase` * `AsciiExt::make_ascii_lowercase` * `char::decode_utf16` * `char::DecodeUtf16` * `char::DecodeUtf16Error` * `char::DecodeUtf16Error::unpaired_surrogate` * `BTreeSet::take` * `BTreeSet::replace` * `BTreeSet::get` * `HashSet::take` * `HashSet::replace` * `HashSet::get` * `OsString::with_capacity` * `OsString::clear` * `OsString::capacity` * `OsString::reserve` * `OsString::reserve_exact` * `OsStr::is_empty` * `OsStr::len` * `std::os::unix::thread` * `RawPthread` * `JoinHandleExt` * `JoinHandleExt::as_pthread_t` * `JoinHandleExt::into_pthread_t` * `HashSet::hasher` * `HashMap::hasher` * `CommandExt::exec` * `File::try_clone` * `SocketAddr::set_ip` * `SocketAddr::set_port` * `SocketAddrV4::set_ip` * `SocketAddrV4::set_port` * `SocketAddrV6::set_ip` * `SocketAddrV6::set_port` * `SocketAddrV6::set_flowinfo` * `SocketAddrV6::set_scope_id` * `<[T]>::copy_from_slice` * `ptr::read_volatile` * `ptr::write_volatile` * The `#[deprecated]` attribute * `OpenOptions::create_new` Deprecated * `std::raw::Slice` - use raw parts of `slice` module instead * `std::raw::Repr` - use raw parts of `slice` module instead * `str::char_range_at` - use slicing plus `chars()` plus `len_utf8` * `str::char_range_at_reverse` - use slicing plus `chars().rev()` plus `len_utf8` * `str::char_at` - use slicing plus `chars()` * `str::char_at_reverse` - use slicing plus `chars().rev()` * `str::slice_shift_char` - use `chars()` plus `Chars::as_str` * `CommandExt::session_leader` - use `before_exec` instead. Closes #27719 cc #27751 (deprecating the `Slice` bits) Closes #27754 Closes #27780 Closes #27809 Closes #27811 Closes #27830 Closes #28050 Closes #29453 Closes #29791 Closes #29935 Closes #30014 Closes #30752 Closes #31262 cc #31398 (still need to deal with `before_exec`) Closes #31405 Closes #31572 Closes #31755 Closes #31756
This commit is contained in:
parent
8694b4ffe9
commit
552eda70d3
58 changed files with 507 additions and 327 deletions
|
@ -8,37 +8,41 @@
|
|||
// option. This file may not be copied, modified, or distributed
|
||||
// except according to those terms.
|
||||
|
||||
//! Unix-specific extensions to primitives in the `std::process` module.
|
||||
//! Unix-specific extensions to primitives in the `std::thread` module.
|
||||
|
||||
#![unstable(feature = "thread_extensions", issue = "29791")]
|
||||
#![stable(feature = "thread_extensions", since = "1.9.0")]
|
||||
|
||||
#[allow(deprecated)]
|
||||
use os::unix::raw::pthread_t;
|
||||
use sys_common::{AsInner, IntoInner};
|
||||
use thread::JoinHandle;
|
||||
|
||||
#[unstable(feature = "thread_extensions", issue = "29791")]
|
||||
#[stable(feature = "thread_extensions", since = "1.9.0")]
|
||||
#[allow(deprecated)]
|
||||
pub type RawPthread = pthread_t;
|
||||
|
||||
/// Unix-specific extensions to `std::thread::JoinHandle`
|
||||
#[unstable(feature = "thread_extensions", issue = "29791")]
|
||||
#[stable(feature = "thread_extensions", since = "1.9.0")]
|
||||
pub trait JoinHandleExt {
|
||||
/// Extracts the raw pthread_t without taking ownership
|
||||
#[stable(feature = "thread_extensions", since = "1.9.0")]
|
||||
fn as_pthread_t(&self) -> RawPthread;
|
||||
|
||||
/// Consumes the thread, returning the raw pthread_t
|
||||
///
|
||||
/// This function **transfers ownership** of the underlying pthread_t to
|
||||
/// the caller. Callers are then the unique owners of the pthread_t and
|
||||
/// must either detach or join the pthread_t once it's no longer needed.
|
||||
#[stable(feature = "thread_extensions", since = "1.9.0")]
|
||||
fn into_pthread_t(self) -> RawPthread;
|
||||
}
|
||||
|
||||
#[unstable(feature = "thread_extensions", issue = "29791")]
|
||||
#[stable(feature = "thread_extensions", since = "1.9.0")]
|
||||
impl<T> JoinHandleExt for JoinHandle<T> {
|
||||
fn as_pthread_t(&self) -> RawPthread {
|
||||
self.as_inner().id() as RawPthread
|
||||
}
|
||||
|
||||
fn into_pthread_t(self) -> RawPthread {
|
||||
self.into_inner().into_id() as RawPthread
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue