Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.
Sign upDocument the can-block-on relationship for servo. #18810
Merged
+28
−0
Conversation
highfive
commented
Oct 10, 2017
|
Heads up! This PR modifies the following files:
|
| //! * Blocking is transitive (if T1 can block on T2 and T2 can block on T3 then T1 can block on T3) | ||
| //! * Nothing can block on itself! | ||
| //! | ||
| //! There is a wrinkle around the use of IPC channels, since they do not support |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
LGTM. Glad to have this documented. |
| //! * Nothing can block on itself! | ||
| //! | ||
| //! There is a complexity intoduced by IPC channels, since they do not support | ||
| //! non-blocking send. This means that as well as `receiver.recv()` blocking, so |
This comment has been minimized.
This comment has been minimized.
cbrewster
Oct 13, 2017
Member
nit: This means that as well as receiver.recv() blocking, sender.send(data) can also block when the IPC buffer is full.
This comment has been minimized.
This comment has been minimized.
6963d9c
to
01e17cf
|
@bors-servo r=cbrewster |
|
|
bors-servo
added a commit
that referenced
this pull request
Oct 13, 2017
…cbrewster Document the can-block-on relationship for servo. <!-- Please describe your changes on the following line: --> This PR adds some documentation comments describing the can-block-on relation that is used to ensure deadlock-freedom. --- <!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: --> - [X] `./mach build -d` does not report any errors - [X] `./mach test-tidy` does not report any errors - [X] These changes fix #14704 - [X] These changes do not require tests because it's documentation <!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.--> <!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. --> <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/18810) <!-- Reviewable:end -->
|
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
asajeffrey commentedOct 10, 2017
•
edited by SimonSapin
This PR adds some documentation comments describing the can-block-on relation that is used to ensure deadlock-freedom.
./mach build -ddoes not report any errors./mach test-tidydoes not report any errorsThis change is