36 lines
740 B
INI
36 lines
740 B
INI
|
|
SPECIFICATION SafetySpec
|
||
|
|
|
||
|
|
CHECK_DEADLOCK FALSE
|
||
|
|
|
||
|
|
\* Repeated fencing with delayed outcomes, lease loss, and replacement.
|
||
|
|
CONSTANTS
|
||
|
|
Jobs = {j1}
|
||
|
|
Workers = {w1, w2}
|
||
|
|
InitialWorkers = {w1}
|
||
|
|
NoJob = NoJob
|
||
|
|
NoWorker = NoWorker
|
||
|
|
MaxAttempts = 3
|
||
|
|
MaxProgress = 1
|
||
|
|
LeaseLimit = 1
|
||
|
|
LocalLimit = 1
|
||
|
|
GlobalLimit = 1
|
||
|
|
FaultsEnabled = TRUE
|
||
|
|
FaultServices = {"Coordination"}
|
||
|
|
|
||
|
|
INVARIANTS
|
||
|
|
TypeOK
|
||
|
|
StateConsistency
|
||
|
|
AtMostOneAuthoritativeAttempt
|
||
|
|
FencingTokensUnique
|
||
|
|
CommittedResultConsistent
|
||
|
|
CancellationSafety
|
||
|
|
PermitSafety
|
||
|
|
QueueRecoverable
|
||
|
|
AttemptIsolation
|
||
|
|
ResumeValidity
|
||
|
|
ZombieIsolation
|
||
|
|
|
||
|
|
PROPERTIES
|
||
|
|
TerminalStateIsImmutable
|
||
|
|
FencingTokensMonotonic
|
||
|
|
CommitIsFencedCAS
|