-
-
Notifications
You must be signed in to change notification settings - Fork 32.5k
bpo-36794: Document that Lock.acquire is fair. #13082
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
Conversation
Hello, and thanks for your contribution! I'm a bot set up to make sure that the project can legally accept your contribution by verifying you have signed the PSF contributor agreement (CLA). Unfortunately we couldn't find an account corresponding to your GitHub username on bugs.python.org (b.p.o) to verify you have signed the CLA (this might be simply due to a missing "GitHub Name" entry in your b.p.o account settings). This is necessary for legal reasons before we can look at your contribution. Please follow the steps outlined in the CPython devguide to rectify this issue. You can check yourself to see if the CLA has been received. Thanks again for your contribution, we look forward to reviewing it! |
Hi @hniksic @the-knights-who-say-ni can't validate if you have signed the CLA because you have not yet associated your BPO account with your GitHub account. Please, could you do it and sign the CLA? Without that, your issue could be closed in the future and your contribution won't be merged. Thank you |
waiting for the lock to be unlocked, only one coroutine | ||
eventually proceeds. | ||
|
||
Acquiring a lock is *fair*: the coroutine that proceeds will be |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't quite understand what you mean by "fair"? It reads oddly to me.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
"Fair" is a standard term for the kind of lock that avoids starvation by treating waiters as first-come first-serve; see e.g. here.
It should be fine if someone is not familiar with the term because the rest of the sentence explains it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see fair in multithreading context first time here.
Not sure if this is standard term.
Can we avoid this word in documentation?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The term fair is widely used in this meaning across programming languages, e.g. kotlin, java, golang, c++, Python.
The idea is to use the technical term to help people already familiar with the concept, and also explain it in the rest of the sentence. That kind of usage doesn't hinder understanding, and it can even help the reader when encountering the term later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In mentioned links fairness is used in java. kotlin inherits this term.
Golang has fairness in documentation only.
C++ and Python links point on stackoverflow which is nice site but not the official python documentation.
Docs for python threading doesn't mention fairness. I think if we add the term we should enumerate it in python glossary as well.
I still not convinced that this is required
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@1st1 what is your opinion?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think using "fair" is fine here, but not really necessary as the text after the colon explains it in detail anyways.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Ok, if Yuri agree
Thanks, @hniksic |
Thanks @hniksic for the PR 🌮🎉.. I'm working now to backport this PR to: 3.7. |
Sorry @hniksic, I had trouble checking out the |
@hniksic if you want to backport to 3.7 please make a PR using |
Let me first retry the backport with miss-islington |
Thanks @hniksic for the PR 🌮🎉.. I'm working now to backport this PR to: 3.7. |
GH-13659 is a backport of this pull request to the 3.7 branch. |
https://bugs.python.org/issue36794 (cherry picked from commit 34f4f5e) Co-authored-by: Hrvoje Nikšić <[email protected]>
https://bugs.python.org/issue36794 (cherry picked from commit 34f4f5e) Co-authored-by: Hrvoje Nikšić <[email protected]>
https://bugs.python.org/issue36794