-module(listener). -export([listen/1]). listen(Func) -> spawn(fun () -> Func(), loop() end). loop() -> receive stop_it -> io:format("Listener ~w exiting now.~n", [self()]); Message -> io:format("Listener ~w got: ~w~n", [self(), Message]), loop() end.