-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Tracking issue for Improve the Send trait (RFC 458) #22251
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Labels
A-trait-system
Area: Trait system
A-type-system
Area: Type system
B-RFC-approved
Blocker: Approved by a merged RFC but not yet implemented.
Comments
Nominating. |
cc @huonw |
Yay! |
🎊 |
💞 (also cc me 😄) |
huonw
added a commit
to huonw/rust
that referenced
this issue
Feb 18, 2015
Previously Send was defined as `trait Send: 'static {}`. As detailed in rust-lang/rfcs#458, the `'static` bound is not actually necessary for safety, we can use lifetimes to enforce that more flexibly. `unsafe` code that was previously relying on `Send` to insert a `'static` bound now may allow incorrect patterns, and so should be audited (a quick way to ensure safety immediately and postpone the audit is to add an explicit `'static` bound to any uses of the `Send` type). cc rust-lang#22251.
huonw
added a commit
to huonw/rust
that referenced
this issue
Feb 18, 2015
In most places this preserves the current API by adding an explicit `'static` bound. Notably absent are some impls like `unsafe impl<T: Send> Send for Foo<T>` and the `std::thread` module. It is likely that it will be possible to remove these after auditing the code to ensure restricted lifetimes are safe. More progress on rust-lang#22251.
huonw
added a commit
to huonw/rust
that referenced
this issue
Feb 18, 2015
Per RFC 458. Closes rust-lang#22251.
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Labels
A-trait-system
Area: Trait system
A-type-system
Area: Type system
B-RFC-approved
Blocker: Approved by a merged RFC but not yet implemented.
rust-lang/rfcs#458
The text was updated successfully, but these errors were encountered: