Handle a signal: Difference between revisions
Content added Content deleted
(Handle a signal en FreeBASIC) |
(add erlang (escript) implementation) |
||
Line 533: | Line 533: | ||
9 |
9 |
||
Program has run for 5 secs, 4 ms, 357 ╬╝s, and 4 hnsecs</pre> |
Program has run for 5 secs, 4 ms, 357 ╬╝s, and 4 hnsecs</pre> |
||
=={{header|Erlang|escript}}== |
|||
<lang Erlang>#! /usr/bin/env escript |
|||
main([]) -> |
|||
erlang:unregister(erl_signal_server), |
|||
erlang:register(erl_signal_server, self()), |
|||
Start = seconds(), |
|||
os:set_signal(sigquit, handle), |
|||
Pid = spawn(fun() -> output_loop(1) end), |
|||
receive |
|||
{notify, sigquit} -> |
|||
erlang:exit(Pid, normal), |
|||
Seconds = seconds() - Start, |
|||
io:format("Program has run for ~b seconds~n", [Seconds]) |
|||
end. |
|||
seconds() -> |
|||
calendar:datetime_to_gregorian_seconds({date(),time()}). |
|||
output_loop(N) -> |
|||
io:format("~b~n",[N]), |
|||
timer:sleep(500), |
|||
output_loop(N + 1). |
|||
</lang> |
|||
=={{header|F_Sharp|F#}}== |
=={{header|F_Sharp|F#}}== |