mirror of
https://github.com/rust-lang/rust.git
synced 2025-02-26 05:44:26 +00:00
Merge pull request #2847 from ben0x539/incoming
Tiny documentation fixes in rust.md and src/libcore/task.rs
This commit is contained in:
commit
3b399afa89
22
doc/rust.md
22
doc/rust.md
@ -2871,12 +2871,12 @@ Consists of 2 statements, 3 expressions and 12 points:
|
||||
* the point after evaluating the static initializer `"hello, world"`
|
||||
* the point after the first statement
|
||||
* the point before the second statement
|
||||
* the point before evaluating the function value `print`
|
||||
* the point after evaluating the function value `print`
|
||||
* the point before evaluating the arguments to `print`
|
||||
* the point before evaluating the function value `println`
|
||||
* the point after evaluating the function value `println`
|
||||
* the point before evaluating the arguments to `println`
|
||||
* the point before evaluating the symbol `s`
|
||||
* the point after evaluating the symbol `s`
|
||||
* the point after evaluating the arguments to `print`
|
||||
* the point after evaluating the arguments to `println`
|
||||
* the point after the second statement
|
||||
|
||||
|
||||
@ -2894,9 +2894,9 @@ Consists of 1 statement, 7 expressions and 14 points:
|
||||
|
||||
|
||||
* the point before the statement
|
||||
* the point before evaluating the function value `print`
|
||||
* the point after evaluating the function value `print`
|
||||
* the point before evaluating the arguments to `print`
|
||||
* the point before evaluating the function value `println`
|
||||
* the point after evaluating the function value `println`
|
||||
* the point before evaluating the arguments to `println`
|
||||
* the point before evaluating the arguments to `+`
|
||||
* the point before evaluating the function value `x`
|
||||
* the point after evaluating the function value `x`
|
||||
@ -2907,7 +2907,7 @@ Consists of 1 statement, 7 expressions and 14 points:
|
||||
* the point before evaluating the arguments to `y`
|
||||
* the point after evaluating the arguments to `y`
|
||||
* the point after evaluating the arguments to `+`
|
||||
* the point after evaluating the arguments to `print`
|
||||
* the point after evaluating the arguments to `println`
|
||||
|
||||
|
||||
The typestate system reasons over points, rather than statements or
|
||||
@ -3186,7 +3186,7 @@ let x: ~int = ~10;
|
||||
~~~~~~~~
|
||||
|
||||
Some operations (such as field selection) implicitly dereference boxes. An
|
||||
example of an @dfn{implicit dereference} operation performed on box values:
|
||||
example of an _implicit dereference_ operation performed on box values:
|
||||
|
||||
~~~~~~~~
|
||||
let x = @{y: 10};
|
||||
@ -3196,8 +3196,8 @@ assert x.y == 10;
|
||||
Other operations act on box values as single-word-sized address values. For
|
||||
these operations, to access the value held in the box requires an explicit
|
||||
dereference of the box value. Explicitly dereferencing a box is indicated with
|
||||
the unary *star* operator `*`. Examples of such @dfn{explicit
|
||||
dereference} operations are:
|
||||
the unary *star* operator `*`. Examples of such _explicit dereference_
|
||||
operations are:
|
||||
|
||||
* copying box values (`x = y`)
|
||||
* passing box values to functions (`f(x,y)`)
|
||||
|
@ -16,9 +16,9 @@
|
||||
* let po = comm::port();
|
||||
* let ch = comm::chan(po);
|
||||
*
|
||||
* task::spawn {||
|
||||
* do task::spawn {
|
||||
* comm::send(ch, "Hello, World");
|
||||
* });
|
||||
* }
|
||||
*
|
||||
* io::println(comm::recv(p));
|
||||
* ~~~
|
||||
|
@ -17,7 +17,7 @@
|
||||
* # Example
|
||||
*
|
||||
* ~~~
|
||||
* spawn {||
|
||||
* do spawn {
|
||||
* log(error, "Hello, World!");
|
||||
* }
|
||||
* ~~~
|
||||
@ -350,7 +350,6 @@ fn run_with<A:send>(-builder: builder,
|
||||
+f: fn~(+A)) {
|
||||
|
||||
/*!
|
||||
*
|
||||
* Runs a task, while transfering ownership of one argument to the
|
||||
* child.
|
||||
*
|
||||
@ -412,15 +411,13 @@ fn spawn(+f: fn~()) {
|
||||
|
||||
fn spawn_with<A:send>(+arg: A, +f: fn~(+A)) {
|
||||
/*!
|
||||
* Runs a new task while providing a channel from the parent to the child
|
||||
* Runs a task, while transfering ownership of one argument to the
|
||||
* child.
|
||||
*
|
||||
* Sets up a communication channel from the current task to the new
|
||||
* child task, passes the port to child's body, and returns a channel
|
||||
* linked to the port to the parent.
|
||||
* This is useful for transfering ownership of noncopyables to
|
||||
* another task.
|
||||
*
|
||||
* This encapsulates some boilerplate handshaking logic that would
|
||||
* otherwise be required to establish communication from the parent
|
||||
* to the child.
|
||||
* This function is equivalent to `run_with(builder(), arg, f)`.
|
||||
*/
|
||||
|
||||
run_with(builder(), arg, f)
|
||||
@ -443,7 +440,7 @@ fn spawn_listener<A:send>(+f: fn~(comm::port<A>)) -> comm::chan<A> {
|
||||
*
|
||||
* let po = comm::port();
|
||||
* let ch = comm::chan(po);
|
||||
* let ch = spawn_listener {|po|
|
||||
* let ch = do spawn_listener |po| {
|
||||
* // Now the child has a port called 'po' to read from and
|
||||
* // an environment-captured channel called 'ch'.
|
||||
* };
|
||||
@ -537,13 +534,15 @@ fn get_task() -> task {
|
||||
*
|
||||
* # Example
|
||||
*
|
||||
* task::unkillable {||
|
||||
* // detach / yield / destroy must all be called together
|
||||
* rustrt::rust_port_detach(po);
|
||||
* // This must not result in the current task being killed
|
||||
* task::yield();
|
||||
* rustrt::rust_port_destroy(po);
|
||||
* }
|
||||
* ~~~
|
||||
* do task::unkillable {
|
||||
* // detach / yield / destroy must all be called together
|
||||
* rustrt::rust_port_detach(po);
|
||||
* // This must not result in the current task being killed
|
||||
* task::yield();
|
||||
* rustrt::rust_port_destroy(po);
|
||||
* }
|
||||
* ~~~
|
||||
*/
|
||||
unsafe fn unkillable(f: fn()) {
|
||||
class allow_failure {
|
||||
|
Loading…
Reference in New Issue
Block a user