| 1234567891011121314151617181920 |
- %% A process whose only job is to keep a counter.
- %% First version
- -module(counter).
- -export([start/0, codeswitch/1]).
-
- start() -> loop(0).
-
- loop(Sum) ->
- receive
- {increment, Count} ->
- loop(Sum+Count);
- {counter, Pid} ->
- Pid ! {counter, Sum},
- loop(Sum);
- code_switch ->
- ?MODULE:codeswitch(Sum)
- % Force the use of 'codeswitch/1' from the latest MODULE version
- end.
-
- codeswitch(Sum) -> loop(Sum).
|