Skip to content

Commit f1fd769

Browse files
committed
add convenience functions for DateTime scheduling
1 parent f1b4e6c commit f1fd769

2 files changed

Lines changed: 15 additions & 0 deletions

File tree

src/SimJulia.jl

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ Main module for SimJulia.jl – a combined continuous time / discrete event proc
66
module SimJulia
77

88
using DataStructures
9+
using Base.Dates
910

1011
import Base.run, Base.now, Base.isless, Base.show, Base.interrupt, Base.yield
1112
import Base.(&), Base.(|)
@@ -30,6 +31,7 @@ module SimJulia
3031
include("operators.jl")
3132
include("tasks/base.jl")
3233
include("simulations.jl")
34+
include("utils/time.jl")
3335
include("processes.jl")
3436
include("finitestatemachines/utils.jl")
3537
include("finitestatemachines/transforms.jl")

src/utils/time.jl

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
function Simulation(initial_time::DateTime)
2+
Simulation(Base.Dates.datetime2epochms(initial_time))
3+
end
4+
5+
function run(env::Environment, until::DateTime)
6+
run(env, Base.Dates.datetime2epochms(until)-now(env))
7+
end
8+
9+
function Timeout(env::Environment, delay::Period; priority::Int8=zero(Int8), value::Any=nothing)
10+
time = now(env)
11+
del = Base.Dates.datetime2epochms(Base.Dates.epochms2datetime(time)+delay)-time
12+
Timeout(env, del;priority=priority, value=value)
13+
end

0 commit comments

Comments
 (0)