Library examples.vertex_simple__code
Require Import zoo.prelude.
Require Import zoo.language.typeclasses.
Require Import zoo.language.notations.
Require Import zoo_parabs.pool.
Require Import zoo_parabs.vertex.
Require Import zoo_std.ivar_4.
Require Import zoo.options.
Definition vertex_simple٠main : val :=
𝗳𝘂𝗻 "num_worker" "a" "b" "c" "d" →
𝗹𝗲𝘁 "ivar" = ivar_4٠create () 𝗶𝗻
𝗹𝗲𝘁 "vtx_a" =
vertex٠create' (𝗳𝘂𝗻 "_ctx" → "a" ())
𝗶𝗻
𝗹𝗲𝘁 "vtx_b" =
vertex٠create' (𝗳𝘂𝗻 "_ctx" → "b" ())
𝗶𝗻
𝗹𝗲𝘁 "vtx_c" =
vertex٠create' (𝗳𝘂𝗻 "_ctx" → "c" ())
𝗶𝗻
𝗹𝗲𝘁 "vtx_d" =
vertex٠create'
(𝗳𝘂𝗻 "ctx" → "d" () ⍮
ivar_4٠notify "ivar" "ctx" ())
𝗶𝗻
vertex٠precede "vtx_a" "vtx_b" ⍮
vertex٠precede "vtx_a" "vtx_c" ⍮
vertex٠precede "vtx_b" "vtx_d" ⍮
vertex٠precede "vtx_c" "vtx_d" ⍮
pool٠run
"num_worker"
(𝗳𝘂𝗻 "ctx" →
vertex٠release "ctx" "vtx_d" ⍮
vertex٠release "ctx" "vtx_c" ⍮
vertex٠release "ctx" "vtx_b" ⍮
vertex٠release "ctx" "vtx_a" ⍮
pool٠wait_ivar "ctx" "ivar").
Require Import zoo.language.typeclasses.
Require Import zoo.language.notations.
Require Import zoo_parabs.pool.
Require Import zoo_parabs.vertex.
Require Import zoo_std.ivar_4.
Require Import zoo.options.
Definition vertex_simple٠main : val :=
𝗳𝘂𝗻 "num_worker" "a" "b" "c" "d" →
𝗹𝗲𝘁 "ivar" = ivar_4٠create () 𝗶𝗻
𝗹𝗲𝘁 "vtx_a" =
vertex٠create' (𝗳𝘂𝗻 "_ctx" → "a" ())
𝗶𝗻
𝗹𝗲𝘁 "vtx_b" =
vertex٠create' (𝗳𝘂𝗻 "_ctx" → "b" ())
𝗶𝗻
𝗹𝗲𝘁 "vtx_c" =
vertex٠create' (𝗳𝘂𝗻 "_ctx" → "c" ())
𝗶𝗻
𝗹𝗲𝘁 "vtx_d" =
vertex٠create'
(𝗳𝘂𝗻 "ctx" → "d" () ⍮
ivar_4٠notify "ivar" "ctx" ())
𝗶𝗻
vertex٠precede "vtx_a" "vtx_b" ⍮
vertex٠precede "vtx_a" "vtx_c" ⍮
vertex٠precede "vtx_b" "vtx_d" ⍮
vertex٠precede "vtx_c" "vtx_d" ⍮
pool٠run
"num_worker"
(𝗳𝘂𝗻 "ctx" →
vertex٠release "ctx" "vtx_d" ⍮
vertex٠release "ctx" "vtx_c" ⍮
vertex٠release "ctx" "vtx_b" ⍮
vertex٠release "ctx" "vtx_a" ⍮
pool٠wait_ivar "ctx" "ivar").