Derive Hash for ThreadId + better example

This commit is contained in:
Stephen M. Coakley 2017-04-01 22:17:59 -05:00
parent 5e122f59ba
commit 2820295266
No known key found for this signature in database
GPG key ID: 91B59C18494C4FC0

View file

@ -652,8 +652,8 @@ pub fn park_timeout(dur: Duration) {
/// A unique identifier for a running thread.
///
/// A `ThreadId` is an opaque object that has a unique value for each thread
/// that creates one. `ThreadId`s do not correspond to a thread's system-
/// designated identifier.
/// that creates one. `ThreadId`s are not guaranteed to correspond to a thread's
/// system-designated identifier.
///
/// # Examples
///
@ -662,17 +662,15 @@ pub fn park_timeout(dur: Duration) {
///
/// use std::thread;
///
/// let handler = thread::Builder::new()
/// .spawn(|| {
/// let thread = thread::current();
/// let thread_id = thread.id();
/// })
/// .unwrap();
/// let other_thread = thread::spawn(|| {
/// thread::current().id()
/// });
///
/// handler.join().unwrap();
/// let other_thread_id = other_thread.join().unwrap();
/// assert!(thread::current().id() != other_thread_id);
/// ```
#[unstable(feature = "thread_id", issue = "21507")]
#[derive(Eq, PartialEq, Copy, Clone)]
#[derive(Clone, Copy, Eq, PartialEq, Hash)]
pub struct ThreadId(u64);
impl ThreadId {
@ -795,14 +793,12 @@ impl Thread {
///
/// use std::thread;
///
/// let handler = thread::Builder::new()
/// .spawn(|| {
/// let thread = thread::current();
/// println!("thread id: {:?}", thread.id());
/// })
/// .unwrap();
/// let other_thread = thread::spawn(|| {
/// thread::current().id()
/// });
///
/// handler.join().unwrap();
/// let other_thread_id = other_thread.join().unwrap();
/// assert!(thread::current().id() != other_thread_id);
/// ```
#[unstable(feature = "thread_id", issue = "21507")]
pub fn id(&self) -> ThreadId {