Events: Difference between revisions
Content added Content deleted
(→{{header|Elixir}}: uses Time module) |
|||
Line 332: | Line 332: | ||
<lang elixir>defmodule Events do |
<lang elixir>defmodule Events do |
||
def log(msg) do |
def log(msg) do |
||
time = Time.utc_now |> to_string |> String.slice(0..7) |
|||
{h,m,s} = :erlang.time |
|||
IO.puts "#{time} => #{msg}" |
|||
end |
end |
||
Line 346: | Line 346: | ||
def main do |
def main do |
||
log("Program start") |
log("Program start") |
||
pid = |
{pid,ref} = spawn_monitor(__MODULE__,:task,[]) |
||
log("Program sleeping") |
log("Program sleeping") |
||
Process.sleep(1000) |
|||
log("Program signalling event") |
log("Program signalling event") |
||
send(pid, :go) |
send(pid, :go) |
||
receive do |
|||
:timer.sleep(100) |
|||
{:DOWN,^ref,_,_,_} -> :task_is_down |
|||
end |
|||
end |
end |
||
end |
end |
||
Line 359: | Line 361: | ||
{{out}} |
{{out}} |
||
<pre> |
<pre> |
||
06:27:05 => Program start |
|||
06:27:05 => Program sleeping |
|||
06:27:05 => Task start |
|||
06:27:06 => Program signalling event |
|||
06:27:06 => Task resumed |
|||
</pre> |
|||
=={{header|Erlang}}== |
=={{header|Erlang}}== |