rust: simplify lock guards by using marker types#628
Merged
wedsonaf merged 1 commit intoRust-for-Linux:rustfrom Jan 18, 2022
Merged
rust: simplify lock guards by using marker types#628wedsonaf merged 1 commit intoRust-for-Linux:rustfrom
wedsonaf merged 1 commit intoRust-for-Linux:rustfrom
Conversation
Unify `Guard` and `GuardMut` into a single type parametrised by a marker. The new guard implementation is the same as the existing `Guard` except that if the marker is `WriteLock`, it also implements `DerefMut` (which was only implemented by `GuardMut` previously). This is in preparation for adding abstractions for read/write locks, which means that a single lock primitive needs to implement the `Lock` primitive in both shared and mutable modes, which is enabled by this change as well. Signed-off-by: Wedson Almeida Filho <wedsonaf@google.com>
84cb5d2 to
b337bfa
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Unify
GuardandGuardMutinto a single type parametrised by amarker. The new guard implementation is the same as the existing
Guardexcept that if the marker is
WriteLock, it also implementsDerefMut(which was only implemented by
GuardMutpreviously).This is in preparation for adding abstractions for read/write locks,
which means that a single lock primitive needs to implement the
Lockprimitive in both shared and mutable modes, which is enabled by this
change as well.
Signed-off-by: Wedson Almeida Filho wedsonaf@google.com