File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -38,18 +38,6 @@ const Request = Put
3838
3939Request (res:: Resource ; priority:: Int = 0 ) = Put (res, 1 ; priority= priority)
4040
41- macro request (res, req, expr)
42- esc (quote
43- $ req = Request ($ res)
44- $ expr
45- if state ($ req) == SimJulia. triggered
46- @yield Release ($ res)
47- else
48- cancel ($ res, $ req)
49- end
50- end )
51- end
52-
5341function request (func:: Function , res:: Resource ; priority:: Int = 0 )
5442 req = Request (res; priority= priority)
5543 try
Original file line number Diff line number Diff line change @@ -57,4 +57,28 @@ con = Container(sim, 10.0; level=5.0)
5757@coroutine my_producer (sim, con)
5858run (sim)
5959
60-
60+ function source (sim:: Simulation , server:: Resource )
61+ i = 0
62+ while true
63+ i += 1
64+ yield (Timeout (sim, rand ()))
65+ @process customer (sim, server, i)
66+ end
67+ end
68+
69+ function customer (sim:: Simulation , server:: Resource , i:: Int )
70+ request (server) do req
71+ println (now (sim), " , customer $i arrives" )
72+ yield (req | Timeout (sim, rand ()))
73+ if state (req) != SimJulia. idle
74+ println (now (sim), " , customer $i starts being served" )
75+ yield (Timeout (sim, rand ()))
76+ end
77+ println (now (sim), " , customer $i leaves" )
78+ end
79+ end
80+
81+ sim = Simulation ()
82+ server = Resource (sim, 1 )
83+ @process source (sim, server)
84+ run (sim, 10.0 )
You can’t perform that action at this time.
0 commit comments