Skip to content

Remove the module-level documentation for thread::scoped #27311

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 27, 2015
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
59 changes: 25 additions & 34 deletions src/libstd/thread/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -85,33 +85,6 @@
//! value produced by the child thread, or `Err` of the value given to
//! a call to `panic!` if the child panicked.
//!
//! ## Scoped threads
//!
//! The `spawn` method does not allow the child and parent threads to
//! share any stack data, since that is not safe in general. However,
//! `scoped` makes it possible to share the parent's stack by forcing
//! a join before any relevant stack frames are popped:
//!
//! ```rust
//! # #![feature(scoped)]
//! use std::thread;
//!
//! let guard = thread::scoped(move || {
//! // some work here
//! });
//!
//! // do some other work in the meantime
//! let output = guard.join();
//! ```
//!
//! The `scoped` function doesn't return a `Thread` directly; instead,
//! it returns a *join guard*. The join guard is an RAII-style guard
//! that will automatically join the child thread (block until it
//! terminates) when it is dropped. You can join the child thread in
//! advance by calling the `join` method on the guard, which will also
//! return the result produced by the thread. A handle to the thread
//! itself is available via the `thread` method of the join guard.
//!
//! ## Configuring threads
//!
//! A new thread can be configured before it is spawned via the `Builder` type,
Expand Down Expand Up @@ -288,7 +261,7 @@ impl Builder {
/// upon being dropped. Because the child thread may refer to data on the
/// current thread's stack (hence the "scoped" name), it cannot be detached;
/// it *must* be joined before the relevant stack frame is popped. See the
/// module documentation for additional details.
/// documentation on `thread::scoped` for additional details.
///
/// # Errors
///
Expand Down Expand Up @@ -388,12 +361,30 @@ pub fn spawn<F, T>(f: F) -> JoinHandle<T> where

/// Spawns a new *scoped* thread, returning a `JoinGuard` for it.
///
/// The join guard can be used to explicitly join the child thread (via
/// `join`), returning `Result<T>`, or it will implicitly join the child
/// upon being dropped. Because the child thread may refer to data on the
/// current thread's stack (hence the "scoped" name), it cannot be detached;
/// it *must* be joined before the relevant stack frame is popped. See the
/// module documentation for additional details.
/// The `spawn` method does not allow the child and parent threads to
/// share any stack data, since that is not safe in general. However,
/// `scoped` makes it possible to share the parent's stack by forcing
/// a join before any relevant stack frames are popped:
///
/// ```rust
/// # #![feature(scoped)]
/// use std::thread;
///
/// let guard = thread::scoped(move || {
/// // some work here
/// });
///
/// // do some other work in the meantime
/// let output = guard.join();
/// ```
///
/// The `scoped` function doesn't return a `Thread` directly; instead, it
/// returns a *join guard*. The join guard can be used to explicitly join
/// the child thread (via `join`), returning `Result<T>`, or it will
/// implicitly join the child upon being dropped. Because the child thread
/// may refer to data on the current thread's stack (hence the "scoped"
/// name), it cannot be detached; it *must* be joined before the relevant
/// stack frame is popped.
///
/// # Panics
///
Expand Down