github.com/swiftstack/ProxyFS@v0.0.0-20210203235616-4017c267d62f/pfsagentd/LockManagementWithSharedLease.uml (about)

     1  @startuml
     2  
     3  scale 800 width
     4  
     5  state None : No locks held
     6  state SharedLockGranted: One or more SharedLocks held
     7  state ExclusiveLockRequested : Transition to SharedLeasePromoting
     8  
     9  [*] --> None
    10  
    11  None --> SharedLockGranted : First SharedLock request
    12  None --> ExclusiveLockRequested : ExclusiveLock request
    13  
    14  SharedLockGranted --> SharedLockGranted : Subsequent SharedLock request
    15  SharedLockGranted --> SharedLockGranted : Non-last SharedLock release
    16  SharedLockGranted --> None : Last SharedLock release
    17  
    18  SharedLockGranted --> ExclusiveLockRequested : ExclusiveLock request
    19  
    20  @enduml