От: | DemAS | http://demas.me | |
Дата: | 16.02.09 10:52 | ||
Оценка: |
register_db_server()->
register(db_serv, start_db_server()).
start_db_server()->
spawn(fun prepare_db_server/0).
prepare_db_server()->
loop_db_server(dict:new()).
loop_db_server(GlobalDict)->
receive
{From, {dict, Dict}} ->
io:format("uuuuu~n"),
From ! {self(), "done"},
io:format("ooooo~n"),
loop_db_server(Dict);
{From, {finish}}->
io:format("db_sever shutdown~n");
end.
db_rpc(Pid, Dict)->
Pid ! {self(), Dict},
io:format("rpc sent~n"),
receive
{Pid, Responce}->
io:format("rpc responce~n"),
Responce
end.
process_dict(Pid, Dict)->
db_rpc(Pid, Dict),
io:format("end process~n").
print_result(Pid)->
db_rpc(Pid, {print}).
shutdown_db_server(Pid)->
db_rpc(Pid, {finish}).
create_test_dict()->
D1 = dict:new(),
D2 = dict:store("a", 5, D1),
D3 = dict:store("b", 2, D2),
D4 = dict:store("c", 1, D3).
test()->
register_db_server(),
D = create_test_dict(),
process_dict(db_serv, {dict, D}),
process_dict(db_serv, {dict, D}),
shutdown_db_server(db_serv).
test2()->
Pid = start_db_server(),
D = create_test_dict(),
process_dict(Pid, {dict, D}),
process_dict(Pid, {dict, D}),
shutdown_db_server(Pid).
2> db_server:test2().
rpc sent
uuuuu
ooooo
rpc responce
end process
rpc sent
uuuuu
ooooo
rpc responce
end process
rpc sent
db_sever shutdown
2> db_server:test().
rpc sent
uuuuu
ooooo