7.3 Transfer between tasks
A value is transferable between tasks (into spawn, into a channel, into an actor message) if its type contains no Rc, no borrows and no non-sync cells with interior mutability. A value can be shared between tasks only as Arc<frozen T> (freeze(x)) or Arc<T> with T: sync. A violation is a compile error, therefore there are no data races in safe code.
Related diagnostics
Source: docs/spec/oxl-standard.en.md