From c4bad51deb75efc033431be513e264c3247b64cb Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Tue, 16 Apr 2019 16:39:51 +0200 Subject: note that late resources must be Send --- book/en/src/by-example/types-send-sync.md | 5 +++++ 1 file changed, 5 insertions(+) (limited to 'book/en/src') diff --git a/book/en/src/by-example/types-send-sync.md b/book/en/src/by-example/types-send-sync.md index da53cf9..8ec62e6 100644 --- a/book/en/src/by-example/types-send-sync.md +++ b/book/en/src/by-example/types-send-sync.md @@ -39,6 +39,11 @@ The example below shows where a type that doesn't implement `Send` can be used. {{#include ../../../../examples/not-send.rs}} ``` +It's important to note that late initialization of resources is effectively a +send operation where the initial value is sent from `idle`, which has the lowest +priority of `0`, to a task with will run with a priority greater than or equal +to `1`. Thus all late resources need to implement the `Send` trait. + ## `Sync` Similarly, [`Sync`] is a marker trait for "types for which it is safe to share -- cgit v1.2.3 From e865cbb2e59a95962d7e4d45c31f9ff1e4ba6579 Mon Sep 17 00:00:00 2001 From: Jorge Aparicio Date: Tue, 16 Apr 2019 21:54:19 +0200 Subject: book: resources shared with init must also be `Send` --- book/en/src/by-example/types-send-sync.md | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'book/en/src') diff --git a/book/en/src/by-example/types-send-sync.md b/book/en/src/by-example/types-send-sync.md index 8ec62e6..632946b 100644 --- a/book/en/src/by-example/types-send-sync.md +++ b/book/en/src/by-example/types-send-sync.md @@ -44,6 +44,14 @@ send operation where the initial value is sent from `idle`, which has the lowest priority of `0`, to a task with will run with a priority greater than or equal to `1`. Thus all late resources need to implement the `Send` trait. +Sharing a resource with `init` can be used to implement late initialization, see +example below. For that reason, resources shared with `init` must also implement +the `Send` trait. + +``` rust +{{#include ../../../../examples/shared-with-init.rs}} +``` + ## `Sync` Similarly, [`Sync`] is a marker trait for "types for which it is safe to share -- cgit v1.2.3