about summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2017-09-18 11:04:24 -0500
committerGitHub <noreply@github.com>2017-09-18 11:04:24 -0500
commitd5b0cbbeea9e792ba6bef27927abd2d6566800fc (patch)
tree2f88f3652f3cfd826e741cdb8a41192d73aeea90 /src/libstd
parentfa9dd27168812cbbda754e703be409dada97a81f (diff)
parent7859c9ef442055c477e7788a74f971ac68e8bd67 (diff)
downloadrust-d5b0cbbeea9e792ba6bef27927abd2d6566800fc.tar.gz
rust-d5b0cbbeea9e792ba6bef27927abd2d6566800fc.zip
Rollup merge of #44651 - bluss:document-thread-name-no-nuls, r=steveklabnik
Document thread builder panics for nul bytes in thread names

This seems to have been undocumented. Mention this where the name is set
(Builder::name) and where the panic could happen (Builder::spawn).

Thread::new is private and I think the builder is the only user where
this matters. A short comment was added to "document" Thread::new too.
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/thread/mod.rs7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/libstd/thread/mod.rs b/src/libstd/thread/mod.rs
index ca01eaefcae..30887b16c60 100644
--- a/src/libstd/thread/mod.rs
+++ b/src/libstd/thread/mod.rs
@@ -287,6 +287,8 @@ impl Builder {
     /// Names the thread-to-be. Currently the name is used for identification
     /// only in panic messages.
     ///
+    /// The name must not contain null bytes (`\0`).
+    ///
     /// For more information about named threads, see
     /// [this module-level documentation][naming-threads].
     ///
@@ -355,6 +357,10 @@ impl Builder {
     /// [`io::Result`]: ../../std/io/type.Result.html
     /// [`JoinHandle`]: ../../std/thread/struct.JoinHandle.html
     ///
+    /// # Panics
+    ///
+    /// Panics if a thread name was set and it contained null bytes.
+    ///
     /// # Examples
     ///
     /// ```
@@ -941,6 +947,7 @@ pub struct Thread {
 
 impl Thread {
     // Used only internally to construct a thread object without spawning
+    // Panics if the name contains nuls.
     pub(crate) fn new(name: Option<String>) -> Thread {
         let cname = name.map(|n| {
             CString::new(n).expect("thread name may not contain interior null bytes")