Add waitLeave and isLocked methods#2
Merged
knowledgecode merged 4 commits intomainfrom Oct 1, 2025
Merged
Conversation
- Add waitLeave() method: waits for critical section release without locking - Add isLocked() method: checks if object is currently locked - Rename interface Occupation to Locking for clarity - Rename _occupy() to _lock() for consistency - Extract _wait() method to reduce code duplication - Update all internal type guards and references
- Add waitLeave() test suite with 5 test cases - Add isLocked() test suite with 4 test cases - Update terminology from "unoccupied" to "unlocked" in comments - Verify waitLeave does not lock after waiting - Test timeout behavior for both new methods
- Document waitLeave() API with parameters and examples - Document isLocked() API with parameters and examples - Add "Monitoring Resource Availability" usage pattern section - Update method count from 3 to 5 in Key Features - Update terminology from "occupied" to "locked" throughout
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.
Summary
waitLeave()method: waits for critical section release without locking itisLocked()method: checks if object is currently lockedChanges
Core Implementation
waitLeave(obj, timeout): waits for release without acquiring lockisLocked(obj): non-destructive lock status checkOccupationinterface toLockingfor clarity_occupy()to_lock()for consistency_wait()method to reduce code duplicationisOccupationtoisLockingTesting
waitLeave()covering timeout, non-locking behaviorisLocked()covering various lock statesDocumentation
waitLeave()andisLocked()Test plan
waitLeave()behavior (immediate return, waiting, timeout)isLocked()behavior (locked/unlocked states, independence)