SLIDE 64 Laser 2005 - Summer School on Software Engineering 64
Example: design does countenance deadlock
c0: C s1: S s0: S c1: C !inCCR !inCCR
direct indirect direct indirect CCC = { inCCR => direct } CCS = { inSCR => indirect }
!inSCR !inSCR c0: C s1: S s0: S c1: C inCCR inCCR
direct indirect direct indirect
!inSCR !inSCR c0: C s1: S s0: S c1: C inCCR inCCR
direct indirect direct indirect
inSCR inSCR
feature foo is inCCR := true if direct.ok then do direct.foobar . . . end -- if inCCR := false end -- foo