Events: Difference between revisions
Content added Content deleted
(Add LFE version of events based on the Erlang version) |
|||
Line 429: | Line 429: | ||
-> |
-> |
||
</pre> |
</pre> |
||
=={{header|LFE}}== |
|||
<lang lisp> |
|||
;;; |
|||
;;; This is a straight port from the Erlang version. |
|||
;;; |
|||
;;; You can run this in the LFE REPL by slurping the file: |
|||
;;; |
|||
;;; > (slurp "events.lfe") |
|||
;;; > (main) |
|||
;;; |
|||
(defmodule events |
|||
(export all)) |
|||
(defun log (msg) |
|||
(let (((tuple h m s) (erlang:time))) |
|||
(lfe_io:format "~2.B:~2.B:~2.B => ~s~n" (list h m s msg)))) |
|||
(defun task () |
|||
(log "Task start") |
|||
(receive |
|||
('go 'ok)) |
|||
(log "Task resumed")) |
|||
(defun main () |
|||
(log "Program start") |
|||
(let ((pid (spawn (lambda () (task))))) |
|||
(progn |
|||
(log "Program sleeping") |
|||
(timer:sleep 1000) |
|||
(log "Program signalling event") |
|||
(! pid 'go) |
|||
(timer:sleep 100)))) |
|||
</lang> |
|||
However, OTP comes with a gen_event behavior that is more robust and resilient than this version. |
|||
=={{header|JavaScript}}== |
=={{header|JavaScript}}== |