-module(hotcode).
-export([start/0,echo/0]).

start() ->
  register(echo, spawn(hotcode,echo,[])).

echo() ->
    receive code_switch ->
	        hotcode:echo();
	    X ->
	        io:format("Actor v2 received ~w~n", [X]),
	        echo()
    end.

%%%%
%%%% Use, e.g., as follows:
%%%%
%% > c(hotcode).
%% {Ok,hotcode}
%% > hotcode:start().
%% true
%% > echo!m.
%% Actor received m
%% m
%% > echo!m2.
%% Actor received m2
%% m2
%%%%
%%%% Modify code and recompile.
%%%%
%% > c(hotcode).
%% {ok,hotcode}
%% > echo!m.
%% Actor received m
%% m
%% > echo!code_switch.
%% code_switch
%% > echo!m.
%% Actor v2 received m
%% m
