github.com/swiftstack/ProxyFS@v0.0.0-20210203235616-4017c267d62f/pfsagentd/LockManagement.uml (about) 1 @startuml 2 3 scale 800 width 4 5 state None : No lease held 6 state SharedLeaseGranted : Able to grant multiple SharedLocks 7 state SharedLeaseRequested : Awaiting ProxyFS to grant either\nSharedLease or ExclusiveLease 8 state SharedLeasePromoting : Awaiting ProxyFS to grant ExclusiveLease\nor be forced to release SharedLease 9 state ExclusiveLeaseGranted : Able to grant multiple\nSharedLocks or one ExclusiveLock 10 state ExclusiveLeaseRequested : Awaiting ProxyFS to\ngrant ExclusiveLease 11 12 [*] --> None 13 14 None --> SharedLeaseRequested : SharedLockRequest 15 None --> ExclusiveLeaseRequested : ExclusiveLockRequest 16 17 SharedLeaseRequested --> SharedLeaseGranted 18 SharedLeaseRequested --> ExclusiveLeaseGranted 19 20 SharedLeaseGranted --> SharedLeaseGranted : SharedLockRequest 21 SharedLeaseGranted --> SharedLeasePromoting : ExclusiveLockRequest 22 23 SharedLeasePromoting --> ExclusiveLeaseGranted 24 ExclusiveLeaseRequested --> ExclusiveLeaseGranted 25 26 ExclusiveLeaseGranted --> ExclusiveLeaseGranted : SharedLockRequest 27 ExclusiveLeaseGranted --> ExclusiveLeaseGranted : ExclusiveLockRequest 28 29 @enduml