Closed
Description
Almost all of the internal code in the mpsc
module makes use of &mut self
, which isn't valid because it's all explicitly designed to work across multiple threads, meaning the guarantees of &mut self
don't hold. This entire implementation dates back to Fall 2013, which is long before the multithreading of &self
vs &mut self
was even decided!
We should update these implementation details to basically never use &mut self
but instead use UnsafeCell
where appropriate.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Metadata
Assignees
Labels
Call for participation: Help is requested to fix this issue.Call for participation: Help is requested to fix this issue.Issue: A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/SoundnessIssue: A soundness hole (worst kind of bug), see: https://en.wikipedia.org/wiki/Soundness