Skip to content

Macros to use :timer.apply_after and :timer.apply_interval with a block

Notifications You must be signed in to change notification settings

adamkittelson/block_timer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build Status

BlockTimer

Macros to use :timer.apply_after and :timer.apply_interval with a block, e.g.:

  iex(1)> import BlockTimer
  nil
  iex(2)> apply_after 3 |> seconds, do: IO.puts "hello"
  {:ok, {1407446427626194, #Reference<0.0.0.371>}}
  iex(3)> hello
  iex(1)> import BlockTimer
  nil
  iex(2)> {:ok, counter} = Agent.start_link fn -> 0 end
  {:ok, #PID<0.70.0>}
  iex(3)> {:ok, tref} = apply_interval 1 |> seconds do
  ...(3)> Agent.update(counter, fn(count) -> count + 1 end)
  ...(3)> IO.puts Agent.get(counter, fn(count) -> count end)
  ...(3)> end
  {:ok, {:interval, #Reference<0.0.0.382>}}
  iex(4)> 1
  2
  3
  4
  5
  :timer.cancel tref
  {:ok, :cancel}
  iex(5)>

About

Macros to use :timer.apply_after and :timer.apply_interval with a block

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages