Skip to content

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

Closed
aturon opened this issue Feb 13, 2015 · 6 comments · Fixed by #22319
Closed

Tracking issue for Improve the Send trait (RFC 458) #22251

aturon opened this issue Feb 13, 2015 · 6 comments · Fixed by #22319
Assignees
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

@aturon
Copy link
Member

aturon commented Feb 13, 2015

rust-lang/rfcs#458

@aturon aturon added A-type-system Area: Type system A-trait-system Area: Trait system B-RFC-approved Blocker: Approved by a merged RFC but not yet implemented. A-threads labels Feb 13, 2015
@aturon
Copy link
Member Author

aturon commented Feb 13, 2015

cc @pythonesque @nikomatsakis

@aturon
Copy link
Member Author

aturon commented Feb 13, 2015

Nominating.

@aturon
Copy link
Member Author

aturon commented Feb 13, 2015

cc @huonw

@huonw huonw self-assigned this Feb 13, 2015
@pythonesque
Copy link
Contributor

Yay!

@steveklabnik
Copy link
Member

🎊

@carllerche
Copy link
Member

💞 (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
# 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.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants