Skip to content

Commit 8d3fd03

Browse files
committed
Clean up thread-local storage docs
`std` no longer contains an implementation of scoped TLS.
1 parent e77d86c commit 8d3fd03

File tree

1 file changed

+15
-20
lines changed

1 file changed

+15
-20
lines changed

src/libstd/thread/mod.rs

+15-20
Original file line numberDiff line numberDiff line change
@@ -135,29 +135,24 @@
135135
//!
136136
//! ## Thread-local storage
137137
//!
138-
//! This module also provides an implementation of thread local storage for Rust
139-
//! programs. Thread local storage is a method of storing data into a global
140-
//! variable which each thread in the program will have its own copy of.
138+
//! This module also provides an implementation of thread-local storage for Rust
139+
//! programs. Thread-local storage is a method of storing data into a global
140+
//! variable that each thread in the program will have its own copy of.
141141
//! Threads do not share this data, so accesses do not need to be synchronized.
142142
//!
143-
//! At a high level, this module provides two variants of storage:
144-
//!
145-
//! * Owned thread-local storage. This is a type of thread local key which
146-
//! owns the value that it contains, and will destroy the value when the
147-
//! thread exits. This variant is created with the `thread_local!` macro and
148-
//! can contain any value which is `'static` (no borrowed pointers).
149-
//!
150-
//! * Scoped thread-local storage. This type of key is used to store a reference
151-
//! to a value into local storage temporarily for the scope of a function
152-
//! call. There are no restrictions on what types of values can be placed
153-
//! into this key.
154-
//!
155-
//! Both forms of thread local storage provide an accessor function, `with`,
156-
//! which will yield a shared reference to the value to the specified
157-
//! closure. Thread-local keys only allow shared access to values as there is no
158-
//! way to guarantee uniqueness if a mutable borrow was allowed. Most values
143+
//! A thread-local key owns the value it contains and will destroy the value when the
144+
//! thread exits. It is created with the [`thread_local!`] macro and can contain any
145+
//! value that is `'static` (no borrowed pointers). It provides an accessor function,
146+
//! [`with`], that yields a shared reference to the value to the specified
147+
//! closure. Thread-local keys allow only shared access to values, as there would be no
148+
//! way to guarantee uniqueness if mutable borrows were allowed. Most values
159149
//! will want to make use of some form of **interior mutability** through the
160-
//! `Cell` or `RefCell` types.
150+
//! [`Cell`] or [`RefCell`] types.
151+
//!
152+
//! [`Cell`]: ../cell/struct.Cell.html
153+
//! [`RefCell`]: ../cell/struct.RefCell.html
154+
//! [`thread_local!`]: ../macro.thread_local!.html
155+
//! [`with`]: struct.LocalKey.html#method.with
161156
162157
#![stable(feature = "rust1", since = "1.0.0")]
163158

0 commit comments

Comments
 (0)