Skip to content

Instantly share code, notes, and snippets.

@dpavsrtrl
Last active May 23, 2019 15:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dpavsrtrl/9c9ab85003e5cea0e20a89bd8b4c2c2c to your computer and use it in GitHub Desktop.
Save dpavsrtrl/9c9ab85003e5cea0e20a89bd8b4c2c2c to your computer and use it in GitHub Desktop.
pony timers
use "time"
actor Logger
var _env: Env
let timers: Timers = Timers
new create(env: Env) =>
_env = env
be log(m: String, d: U64) =>
timers(
Timer(
object iso
fun ref apply(timer: Timer, count: U64): Bool =>
_env.out.print(m + " sleep "+ d.string())
true
fun ref cancel(timer: Timer ref) => None
end, U64(1_000_000_000) * d))
actor Main
new create(env: Env) =>
let l1 = Logger(env)
l1.log("m1", U64(3))
l1.log("m2", U64(1))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment