-module(prog).
-export([main/0]).
main() ->
Pid = spawn(fun() -> loop(0) end),
procidurka(Pid, update_n),
R1 = tipa_function(Pid, get_n),
io:
format("after procidurka call tipa_function returned: ~p~n",[R1]), procidurka(Pid, update_n),
R2 = tipa_function(Pid, get_n),
io:
format("after procidurka call tipa_function returned: ~p~n",[R2]), procidurka(Pid, update_n),
R3 = tipa_function(Pid, get_n),
io:
format("after procidurka call tipa_function returned: ~p~n",[R3]).
procidurka(Pid, Request) ->
Pid ! {self(), Request}.
tipa_function(Pid, Request) ->
Pid ! {self(), Request},
receive
Response
->
Response
end.
loop(N) ->
receive
{From, get_n} ->
From ! N,
loop(N);
{From, update_n} ->
loop(N+1);
{From, Other} ->
From ! {error,Other},
loop(N)
end.
LW1vZHVsZShwcm9nKS4KLWV4cG9ydChbbWFpbi8wXSkuCgptYWluKCkgLT4KICBQaWQgPSBzcGF3bihmdW4oKSAtPiBsb29wKDApIGVuZCksCiAgcHJvY2lkdXJrYShQaWQsIHVwZGF0ZV9uKSwKICBSMSA9IHRpcGFfZnVuY3Rpb24oUGlkLCBnZXRfbiksCiAgaW86Zm9ybWF0KCJhZnRlciBwcm9jaWR1cmthIGNhbGwgdGlwYV9mdW5jdGlvbiByZXR1cm5lZDogfnB+biIsW1IxXSksCiAgcHJvY2lkdXJrYShQaWQsIHVwZGF0ZV9uKSwKICBSMiA9IHRpcGFfZnVuY3Rpb24oUGlkLCBnZXRfbiksCiAgaW86Zm9ybWF0KCJhZnRlciBwcm9jaWR1cmthIGNhbGwgdGlwYV9mdW5jdGlvbiByZXR1cm5lZDogfnB+biIsW1IyXSksCiAgcHJvY2lkdXJrYShQaWQsIHVwZGF0ZV9uKSwKICBSMyA9IHRpcGFfZnVuY3Rpb24oUGlkLCBnZXRfbiksCiAgaW86Zm9ybWF0KCJhZnRlciBwcm9jaWR1cmthIGNhbGwgdGlwYV9mdW5jdGlvbiByZXR1cm5lZDogfnB+biIsW1IzXSkuCgkKcHJvY2lkdXJrYShQaWQsIFJlcXVlc3QpIC0+CiAgUGlkICEge3NlbGYoKSwgUmVxdWVzdH0uICAKICAKdGlwYV9mdW5jdGlvbihQaWQsIFJlcXVlc3QpIC0+CiAgUGlkICEge3NlbGYoKSwgUmVxdWVzdH0sCiAgcmVjZWl2ZQogICAgUmVzcG9uc2UKICAgICAgLT4KICAgICAgICBSZXNwb25zZQogIGVuZC4gIAogIApsb29wKE4pIC0+CiAgcmVjZWl2ZQogICAge0Zyb20sIGdldF9ufSAtPgogICAgICBGcm9tICEgTiwKICAgICAgbG9vcChOKTsKICAgIHtGcm9tLCB1cGRhdGVfbn0gLT4KICAgICAgbG9vcChOKzEpOwogICAge0Zyb20sIE90aGVyfSAtPgogICAgICBGcm9tICEge2Vycm9yLE90aGVyfSwKICAgICAgbG9vcChOKQogIGVuZC4=