Rollup merge of #38513 - GuillaumeGomez:thread_fn_docs, r=frewsxcv

Add missing examples in some thread functions

r? @frewsxcv
This commit is contained in:
Steve Klabnik 2016-12-24 14:29:28 -05:00 committed by GitHub
commit 67bef48739

View File

@ -318,20 +318,38 @@ impl Builder {
// Free functions
////////////////////////////////////////////////////////////////////////////////
/// Spawns a new thread, returning a `JoinHandle` for it.
/// Spawns a new thread, returning a [`JoinHandle`] for it.
///
/// The join handle will implicitly *detach* the child thread upon being
/// dropped. In this case, the child thread may outlive the parent (unless
/// the parent thread is the main thread; the whole process is terminated when
/// the main thread finishes.) Additionally, the join handle provides a `join`
/// the main thread finishes). Additionally, the join handle provides a [`join`]
/// method that can be used to join the child thread. If the child thread
/// panics, `join` will return an `Err` containing the argument given to
/// `panic`.
/// panics, [`join`] will return an [`Err`] containing the argument given to
/// [`panic`].
///
/// # Panics
///
/// Panics if the OS fails to create a thread; use `Builder::spawn`
/// Panics if the OS fails to create a thread; use [`Builder::spawn`]
/// to recover from such errors.
///
/// [`JoinHandle`]: ../../std/thread/struct.JoinHandle.html
/// [`join`]: ../../std/thread/struct.JoinHandle.html#method.join
/// [`Err`]: ../../std/result/enum.Result.html#variant.Err
/// [`panic!`]: ../../std/macro.panic.html
/// [`Builder::spawn`]: ../../std/thread/struct.Builder.html#method.spawn
///
/// # Examples
///
/// ```
/// use std::thread;
///
/// let handler = thread::spawn(|| {
/// // thread code
/// });
///
/// handler.join().unwrap();
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
pub fn spawn<F, T>(f: F) -> JoinHandle<T> where
F: FnOnce() -> T, F: Send + 'static, T: Send + 'static
@ -341,7 +359,7 @@ pub fn spawn<F, T>(f: F) -> JoinHandle<T> where
/// Gets a handle to the thread that invokes it.
///
/// #Examples
/// # Examples
///
/// Getting a handle to the current thread with `thread::current()`:
///
@ -366,6 +384,14 @@ pub fn current() -> Thread {
}
/// Cooperatively gives up a timeslice to the OS scheduler.
///
/// # Examples
///
/// ```
/// use std::thread;
///
/// thread::yield_now();
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
pub fn yield_now() {
imp::Thread::yield_now()
@ -375,7 +401,7 @@ pub fn yield_now() {
///
/// # Examples
///
/// ```rust,should_panic
/// ```should_panic
/// use std::thread;
///
/// struct SomeStruct;
@ -413,6 +439,15 @@ pub fn panicking() -> bool {
/// specifics or platform-dependent functionality. Note that on unix platforms
/// this function will not return early due to a signal being received or a
/// spurious wakeup.
///
/// # Examples
///
/// ```no_run
/// use std::thread;
///
/// // Let's sleep for 2 seconds:
/// thread::sleep_ms(2000);
/// ```
#[stable(feature = "rust1", since = "1.0.0")]
#[rustc_deprecated(since = "1.6.0", reason = "replaced by `std::thread::sleep`")]
pub fn sleep_ms(ms: u32) {
@ -433,7 +468,7 @@ pub fn sleep_ms(ms: u32) {
///
/// # Examples
///
/// ```rust,no_run
/// ```no_run
/// use std::{thread, time};
///
/// let ten_millis = time::Duration::from_millis(10);