Commit Graph

185 Commits

Author SHA1 Message Date
Alex Crichton d5b0cbbeea 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.
2017-09-18 11:04:24 -05:00
Ulrik Sverdrup 7859c9ef44 std: 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.
2017-09-17 10:21:15 +02:00
Tobias Schaffner b2b5063517 Move default stack min size to thread implementations
The default min stack size value is smaller on l4re and therefore
this value has to be different depending on the platform.
2017-09-13 10:56:41 +02:00
bors 93cdf5e3c4 Auto merge of #44112 - alexcrichton:thread-join, r=sfackler
std: Handle OS errors when joining threads

Also add to the documentation that the `join` method can panic.

cc #34971
cc #43539
2017-08-27 04:20:28 +00:00
Alex Crichton dc7c7ba0c9 std: Handle OS errors when joining threads
Also add to the documentation that the `join` method can panic.

cc #34971
cc #43539
2017-08-26 19:36:46 -07:00
lukaramu 49ee9f3f08 Fix inconsistent doc headings
This fixes headings reading "Unsafety" and "Example", they should be
"Safety" and "Examples" according to RFC 1574.
2017-08-24 18:42:53 +02:00
Corey Farwell 1d5ee636d7 Thread spawning: don't run min_stack if the user has specified stack size. 2017-08-22 23:05:14 -04:00
Fourchaux c7104be1a3 Fix typos & us spellings 2017-08-15 21:56:30 +02:00
Corey Farwell 659460191d Indicate which stack size option has precedence. 2017-08-14 15:03:31 -04:00
Corey Farwell 10bd80d79b Indicate thread names get passed to the OS. 2017-08-13 16:23:13 -04:00
Corey Farwell 150713ce9f Rewrite docs for stack size/thread names for spawned threads.
* Moves docs about stack size and thread naming from `Builder` to the
  `std::thread` module
* Adds more links to the new module-level documentation
* Mentions the 2 MiB stack size default, but indicate it's subject to
  change

Fixes https://github.com/rust-lang/rust/issues/43805.
2017-08-13 13:20:00 -04:00
Bastien Orivel 47cb3c5bc2 Fix some typos 2017-08-11 00:16:18 +02:00
Corey Farwell 4c08c131fa Indicate how ThreadId is created. 2017-08-02 23:16:34 -04:00
Corey Farwell 795db4c946 Fix broken links in Thread docs. 2017-08-02 23:16:33 -04:00
Mark Simulacrum 25e5f0a48d Rollup merge of #43456 - joshlf:spawn-doc-grammar, r=alexcrichton
std::thread::spawn: Fix grammar in documentation

Closes #43435.
2017-07-26 06:15:04 -06:00
Joshua Liebow-Feeser 8aa8f80ac0 std::thread::spawn: Fix grammar in documentation 2017-07-24 11:17:29 -07:00
Bruce Mitchener 539df8121b Fix some doc/comment typos. 2017-07-23 22:48:01 +07:00
Lee Bousfield 8b5549defb Fix @alexcrichton comments 2017-07-11 11:04:19 -04:00
Steven Fackler dc411e307a Stabilize ThreadId
Closes #21507
2017-06-24 19:19:26 -07:00
Alex Crichton 06540cb205 rustc: Enable #[thread_local] for Windows
I think LLVM has had support for quite some time now for this, we just never got
around to testing it out and binding it. We've had some trouble landing this in
the past I believe, but it's time to try again!

This commit flags the `#[thread_local]` attribute as being available for Windows
targets and adds an implementation of `register_dtor` in the `thread::local`
module to ensure we can destroy these keys. The same functionality is
implemented in clang via a function called `__tlregdtor` (presumably provided in
some Windows runtime somewhere), but this function unfortunately does not take a
data pointer (just a thunk) which means we can't easily call it. For now
destructors are just run in the same way the Linux fallback is implemented,
which is just keeping track via a single OS-based TLS key.
2017-06-23 16:11:39 -07:00
Mark Buer 0389d40ce0 Capture elapsed duration in Thread::park_timeout example 2017-06-12 13:43:58 +09:30
Mark Simulacrum 32f418f60a Rollup merge of #41981 - gamazeps:thread-detach, r=frewsxcv
[Doc] Expands `detach` documentation in `thread::JoinHande`.

Part of #29378 .

- Adds an example of a thread detaching.
- Expands what `detaching` means.

r? @steveklabnik
2017-06-02 09:10:41 -06:00
Felix Raimundo b76b9e1467 Expands detach documentation in thread::JoinHande.
Part of #29378 .

- Adds an example of a thread detaching.
- Expands what `detaching` means.
2017-06-02 12:26:04 +02:00
Mark Simulacrum 8bac98a252 Rollup merge of #42141 - ids1024:nobacktrace, r=aturon
Fix building std without backtrace feature, which was broken in ca8b754

Fixes #42139
2017-05-24 19:50:02 -06:00
Mark Simulacrum f4780a3f7c Rollup merge of #41980 - gamazeps:thread-send, r=steveklabnik
[Doc] Add `'static` and `Send` constraints explanations to `thread::spawn`

Part of #29378.

Explains why the constraints on the closure and its return value are `'static` and `Send`.

Allows to tick of `thread::spawn` from the list of things to document in the `thread` module.

r? @steveklabnik
2017-05-24 19:49:59 -06:00
Ian Douglas Scott 66237afce4 Fix building without backtrace feature, which was broken in ca8b754
Fixes #42139
2017-05-21 12:38:07 -07:00
Mark Simulacrum 18171a8861 Rollup merge of #41994 - gamazeps:thread-builder, r=GuillaumeGomez
[Doc] Implrove `thread::Builder`'s doc.

Part of #29378 .

- Explains *why* we would use the builder instead ofthe free function.
- Changes the parent-child explanation for a spawned-caller in `thread::Builder::spawn`
- Adds a link to `io::Result` in `thread::Builder`
- Corrects the return type doc in `thread::Builder::spawn`

r? @rust-lang/docs
2017-05-16 08:18:30 -06:00
Felix Raimundo a51777ec87 Improve thread::Builder documentation.
Part of #29378 .

- In particular explains *why* we would use the builder instead of
  the free function.
- Changes the parent-child explanation for a spawned-caller.
- Add link to `io::Result` in `thread::Builder`
- Corrects the `thread::Builder::spawn` documentation.
2017-05-14 20:13:32 +02:00
Felix Raimundo 770bd57ea5 Add 'static and Send constraints explanations to thread::spawn
Part of #29378.
2017-05-14 14:14:42 +02:00
Felix Raimundo a9cb094879 Explain why thread::yield_now could be used.
Part of #29378.
2017-05-14 14:05:10 +02:00
Mark Simulacrum 605d727bb3 Rollup merge of #41896 - tshepang:too-long, r=steveklabnik
doc: break into 2 sentences
2017-05-12 18:57:29 -06:00
Tshepang Lekhonkhobe e42875ce6d doc: break into 2 sentences 2017-05-11 06:27:01 +02:00
Steve Klabnik 42ce11eb5a Rollup merge of #41854 - gamazeps:thread-spawn-doc, r=steveklabnik
[Doc] Improve `thread::spawn` documentation

Part of #29378

- Add two examples to `thread::spawn` doumentation that show common uses of threads.
- Add a link to `thread::Builder` in the `thread::spawn` documentation for configuring threads.
- Add a link to `thread::spawn` in `thread::Builder` in order to avoid documentation duplication.

r? @steveklabnik
2017-05-10 17:18:33 +02:00
Steve Klabnik ec85859d9a Rollup merge of #41809 - gamazeps:thread-docs, r=steveklabnik
[DOC] Improve the thread::park and thread::unpark documentation

Part of #29378 .

Takes care of the documentation for `park`, `park_duration` and also improves the `unpark` example.

- `park should` have its module documentation inlined here, and cleaned up.
- `park_timeout` could use links to `park`.
2017-05-10 17:18:32 +02:00
bors 25a161765f Auto merge of #41815 - Yamakaky:improve-backtrace-bottom, r=alexcrichton
Improve cleaning of the bottom of the backtrace

Following https://github.com/rust-lang/rust/pull/40264. It only cleans the bottom of the trace (after the main). It handles correctly the normal main, tests, benchmarks and threads.

I kept `skipped_before` since it will be used later for the cleaning of the top.
2017-05-10 11:37:22 +00:00
Felix Raimundo fe7b6db39b Fix typos in doc 2017-05-10 10:44:58 +02:00
Yamakaky ca8b75466c Don't show the std frames before user code on unwinding.
When `RUST_BACKTRACE=1`, remove all frames after
`__rust_maybe_catch_panic`. Tested on `main`, threads, tests and
benches. Cleaning of the top of the stacktrace is let to a future PR.

Fixes #40201

See #41815
2017-05-09 19:51:50 +02:00
Felix Raimundo 202086e48f Fix warnings in examples 2017-05-09 19:06:56 +02:00
Felix Raimundo afe74c3900 Fix link 2017-05-09 19:02:43 +02:00
bors 644fc403dd Auto merge of #41814 - gamazeps:thread-struct-doc, r=steveklabnik
[Doc] improve `thread::Thread` and `thread::Builder` documentations

Part of #29378

- Adds information about the stack_size when using `Builder`. This might be considered too low level, but I assume that if someone wants to create their own builder instead of using `thread::spawn` they may be interested in that info.
- Updates the `thread::Thread` structure doc, mostly by explaining how to get one, the previous example was removed because it was not related to `thread::Thread`, but rather to `thread::Builder::name`.
  Not much is present there, mostly because this API is not often used (the only method that seems useful is `unpark`, which is documented in #41809).
2017-05-09 16:31:07 +00:00
Felix Raimundo 656efcd3ab Address review comments 2017-05-09 16:57:03 +02:00
Felix Raimundo 323a774c2f Address review comments 2017-05-09 16:52:26 +02:00
Felix Raimundo 9db31206f5 Add a link to thread::Builder in thread::spawn 2017-05-09 13:27:22 +02:00
Felix Raimundo c655348f26 Add more examples to thread::spawn
Part of #29378
2017-05-09 13:20:04 +02:00
Felix Raimundo 03c9510525 Fix typos in thread::park documentation. 2017-05-07 21:50:44 +02:00
Felix Raimundo c9e5eab6ff Update the thread::Thread documentation.
- Copied the module documentation to `Thread`.
- Removed the example because it did not use any method of Thread.
2017-05-07 19:31:20 +02:00
Felix Raimundo ddb9e50b45 Add stack size doc to thread::spawn.
Part of #29378
2017-05-07 19:31:17 +02:00
Felix Raimundo fa0cdaa63f Inline thread::park documentation.
Part of #29378

- Moves the module documentation into `park`.
- Add the same example as the one from `unpark` to `park`.
2017-05-07 19:10:44 +02:00
Felix Raimundo 12efc9d0fa Improve thread::panicking documentaion.
Part of #29378
2017-05-07 18:40:06 +02:00
Felix Raimundo c0d475ad7b fix typo 2017-05-07 16:22:13 +02:00