Skip to content

Commit e94afbb

Browse files
committed
Cleanup code
1 parent dc46cb3 commit e94afbb

6 files changed

Lines changed: 13 additions & 43 deletions

File tree

src/base.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,7 @@ function state(ev::AbstractEvent) :: EVENT_STATE
6060
end
6161

6262
function append_callback(func::Function, ev::AbstractEvent, args::Any...) :: Function
63-
if ev.bev.state == triggered
64-
throw(EventTriggered(ev))
65-
end
63+
ev.bev.state == triggered && throw(EventTriggered(ev))
6664
cb = ()->func(ev, args...)
6765
ev.bev.callbacks[cb] = ev.bev.cid+=one(UInt)
6866
return cb

src/coroutines.jl

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,17 +59,13 @@ function execute{E<:Environment}(ev::AbstractEvent{E}, proc::Coroutine{E})
5959
env = environment(ev)
6060
set_active_process(env, proc)
6161
target = proc.fsm(value(ev))
62+
set_active_process(env)
6263
if iscoroutinedone(proc.fsm)
6364
schedule(proc.bev, value=target)
6465
else
65-
if state(target) == triggered
66-
proc.target = Timeout(env, value=value(target))
67-
else
68-
proc.target = target
69-
end
66+
proc.target = state(target) == triggered ? Timeout(env, value=value(target)) : target
7067
proc.resume = append_callback(execute, proc.target, proc)
7168
end
72-
set_active_process(env)
7369
catch exc
7470
rethrow(exc)
7571
end

src/events.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,7 @@ end
1111

1212
function succeed{E<:Environment}(ev::Event{E}; priority::Int8=Int8(0), value::Any=nothing) :: Event{E}
1313
sta = state(ev)
14-
if sta == scheduled || sta == triggered
15-
throw(EventNotIdle(ev))
16-
end
14+
(sta == scheduled || sta == triggered) && throw(EventNotIdle(ev))
1715
schedule(ev.bev, priority=priority, value=value)
1816
return ev
1917
end

src/processes.jl

Lines changed: 3 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -57,16 +57,10 @@ end
5757
function yield{E<:Environment}(target::AbstractEvent{E})
5858
env = environment(target)
5959
proc = active_process(env)
60-
if state(target) == triggered
61-
proc.target = Timeout(env, value=value(target))
62-
else
63-
proc.target = target
64-
end
60+
proc.target = state(target) == triggered ? Timeout(env, value=value(target)) : target
6561
proc.resume = append_callback(execute, proc.target, proc)
6662
ret = SimJulia.produce(nothing)
67-
if isa(ret, Exception)
68-
throw(ret)
69-
end
63+
isa(ret, Exception) && throw(ret)
7064
return ret
7165
end
7266

@@ -76,9 +70,7 @@ function execute{E<:Environment}(ev::AbstractEvent{E}, proc::Process{E})
7670
set_active_process(env, proc)
7771
ret = SimJulia.consume(proc.task, value(ev))
7872
set_active_process(env)
79-
if istaskdone(proc.task)
80-
schedule(proc.bev, value=ret)
81-
end
73+
istaskdone(proc.task) && schedule(proc.bev, value=ret)
8274
catch exc
8375
rethrow(exc)
8476
end

src/resources/base.jl

Lines changed: 5 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -19,22 +19,16 @@ struct Get{E<:Environment} <: ResourceEvent{E}
1919
end
2020

2121
function isless(a::ResourceKey, b::ResourceKey)
22-
return (a.priority < b.priority) || (a.priority == b.priority && a.id < b.id)
22+
(a.priority < b.priority) || (a.priority == b.priority && a.id < b.id)
2323
end
2424

2525
function trigger_put{E<:Environment}(put_ev::ResourceEvent{E}, res::AbstractResource{E})
2626
queue = DataStructures.PriorityQueue(res.Put_queue)
2727
while length(queue) > 0
2828
(put_ev, key) = DataStructures.peek(queue)
2929
proceed = do_put(res, put_ev, key)
30-
if state(put_ev) == scheduled
31-
DataStructures.dequeue!(res.Put_queue, put_ev)
32-
end
33-
if proceed
34-
DataStructures.dequeue!(queue)
35-
else
36-
break
37-
end
30+
state(put_ev) == scheduled && DataStructures.dequeue!(res.Put_queue, put_ev)
31+
proceed ? DataStructures.dequeue!(queue) : break
3832
end
3933
end
4034

@@ -43,14 +37,8 @@ function trigger_get{E<:Environment}(get_ev::ResourceEvent{E}, res::AbstractReso
4337
while length(queue) > 0
4438
(get_ev, key) = DataStructures.peek(queue)
4539
proceed = do_get(res, get_ev, key)
46-
if state(get_ev) == scheduled
47-
DataStructures.dequeue!(res.Get_queue, get_ev)
48-
end
49-
if proceed
50-
DataStructures.dequeue!(queue)
51-
else
52-
break
53-
end
40+
state(get_ev) == scheduled && DataStructures.dequeue!(res.Get_queue, get_ev)
41+
proceed ? DataStructures.dequeue!(queue) : break
5442
end
5543
end
5644

src/simulation.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,9 +95,7 @@ Does a simulation step and processes the next event.
9595
step(sim::Simulation) :: Bool
9696
"""
9797
function step(sim::Simulation)
98-
if isempty(sim.heap)
99-
throw(EmptySchedule())
100-
end
98+
isempty(sim.heap) && throw(EmptySchedule())
10199
(bev, key) = DataStructures.peek(sim.heap)
102100
DataStructures.dequeue!(sim.heap)
103101
sim.time = key.time

0 commit comments

Comments
 (0)