Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix in weak_count in Arc in the case the weak count is locked. #43318

Merged
merged 2 commits into from
Jul 21, 2017

Conversation

jhjourdan
Copy link
Contributor

In the case the weak count was locked, the weak_count function could
return usize::MAX. We need to test this condition manually.

In the case the weak count was locked, the weak_count function could
return usize::MAX. We need to test this condition manually.
@rust-highfive
Copy link
Collaborator

Thanks for the pull request, and welcome! The Rust team is excited to review your changes, and you should hear from @alexcrichton (or someone else) soon.

If any changes to this PR are deemed necessary, please add them as extra commits. This ensures that the reviewer can see what has changed since they last reviewed the code. Due to the way GitHub handles out-of-date commits, this should also make it reasonably obvious what issues have or haven't been addressed. Large or tricky changes may require several passes of review and changes.

Please see the contribution instructions for more information.

@alexcrichton
Copy link
Member

Thanks! Could a test like this also be added?

@arielb1 arielb1 added the S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author. label Jul 18, 2017
@RalfJung
Copy link
Member

Shouldn't the fix rather be to retry until the lock is released?

@jhjourdan
Copy link
Contributor Author

@RalfJung We know that if the weak count is locked, then it is necessary 1, because we use a CAS with 1 to acquire the lock.

@RalfJung
Copy link
Member

I see. So whoever holds the lock did so just to make sure it doesn't get modified (as opposed to acquiring the lock in order to do modification themselves). Makes sense; it's about uniqueness checking, after all.

@jhjourdan
Copy link
Contributor Author

@alexcrichton I added the test by mimicking the others in arc.rs. However, it does not seem to be ran when typing x.py test. What do I do wrong?

@alexcrichton
Copy link
Member

Ah no worries, we do run the tests for the alloc crate so it'll get thrown in there.

@bors: r+

@bors
Copy link
Contributor

bors commented Jul 20, 2017

📌 Commit 8416713 has been approved by alexcrichton

@bors
Copy link
Contributor

bors commented Jul 21, 2017

⌛ Testing commit 8416713 with merge d361efa...

bors added a commit that referenced this pull request Jul 21, 2017
Fix in weak_count in Arc in the case the weak count is locked.

In the case the weak count was locked, the weak_count function could
return usize::MAX. We need to test this condition manually.
@bors
Copy link
Contributor

bors commented Jul 21, 2017

☀️ Test successful - status-appveyor, status-travis
Approved by: alexcrichton
Pushing d361efa to master...

@bors bors merged commit 8416713 into rust-lang:master Jul 21, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
S-waiting-on-author Status: This is awaiting some action (such as code changes or more information) from the author.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants