Closed lucasalbertins closed 10 years ago
(semi-)simplified example:
channels
ent: nat * nat
chansets
csA = --{| ent.x.(1) | x in set {2} |}
{| ent.(2).(1) |}
csB = --{| ent.(2).x | x in set {1} |}
{| ent.(2).(1) |}
process POD = begin
actions
A = ent?o!1 -> A
B = ent!2!1 -> B
@
(ent?o!1 -> A [ csA || csB ] ent!2!1 -> B)
-- this would be fine:
-- (ent?o!1 -> A [| csA |] ent!2!1 -> B)
end
The example below describes a process POD with two actions A and B that synchronise on channel
ent
. The alphabets of synchronisation restrict both actions to synchronise specifically on the eventent!([mk_token("D")])!([mk_token("T")])
. However, every time I run the Interpreter it displays the messageDEADLOCK
, but there is no deadlock in this example.