Show
Ignore:
Timestamp:
01/03/09 00:15:10 (5 years ago)
Author:
kuenishi
Message:

lang/erlang/qnesia OTPっぽくしてみた

Location:
lang/erlang/qnesia
Files:
2 added
3 copied

Legend:

Unmodified
Added
Removed
  • lang/erlang/qnesia/src/qnesia.erl

    r27792 r27794  
    2222 
    2323-export([ 
    24          mnesia_wrapper/0, coordinator/4, 
     24         coordinator/4, 
    2525         start_test/0, 
    2626         replica/0 
     
    128128 
    129129replica()-> 
    130     mnesia_wrapper(). 
    131  
    132 %% mnesia wrapper 
    133 %erl -sname b@localhost  -s qnesia mnesia_wrapper  -noshell -s init stop 
    134 mnesia_wrapper()-> 
    135     ok=mnesia:create_schema([node()]), 
    136     ok=mnesia:start(), 
    137     {atomic,ok}=mnesia:create_table( data, [ 
    138                                 {disc_copies, [node()]}, 
    139                                 {attributes, record_info(fields, data)} 
    140                                 ]), 
    141     true=register(slave, self()),%, slave), 
    142     io:format("entering ~p loop.~n", [?MODULE]), 
     130    mnesia_wrapper_init(), 
    143131    WriteTx = fun(Data)-> 
    144132                      mnesia:transaction( 
     
    153141    mnesia_wrapper_loop(WriteTx, ReadTx), 
    154142    mnesia:stop(). 
     143 
     144%% mnesia wrapper 
     145%erl -sname b@localhost  -s qnesia mnesia_wrapper  -noshell -s init stop 
     146mnesia_wrapper_init()-> 
     147    ok=mnesia:create_schema([node()]), 
     148    ok=mnesia:start(), 
     149    {atomic,ok}=mnesia:create_table( data, [ 
     150                                {disc_copies, [node()]}, 
     151                                {attributes, record_info(fields, data)} 
     152                                ]), 
     153    true=register(slave, self()),%, slave), 
     154    io:format("entering ~p loop.~n", [?MODULE]). 
    155155 
    156156mnesia_wrapper_loop(WriteTx, ReadTx)-> 
     
    167167                                   From ! {self(), {ok, atomic}}, 
    168168                                   receive 
    169                                        {From, {error, do_rollback}}-> mnesia:abort(); 
     169                                       {From, {error, do_rollback}}-> mnesia:abort(rollback_done); 
    170170                                       {From, {ok, do_commit}}    -> ok; 
    171171                                       _->      mnesia:abort(unknown_error) 
     
    174174                                   io:format("error ~p.~n", [Reason]), 
    175175                                   From ! {self(), {error, Reason}} 
    176                            end)  of 
     176                           end 
     177                   end)  of 
    177178                {atomic, ok}-> ok; 
    178179                {aborted, _Reason} -> ng 
     
    190191                    From ! {self(), {error, too_many_data}} 
    191192            end, 
    192             mnesia_wrapper_loop(); 
    193 %       {From, be_master}-> 
     193            mnesia_wrapper_loop(WriteTx, ReadTx); 
     194%       {From, be_master}-> % after master election...  
    194195        {From, _Other} -> 
    195196            io:format("error... illegal_message ~p.~n", [_Other]), 
    196197            From ! {self(), {error, illegal_message}}, 
    197             mnesia_wrapper_loop() 
     198            mnesia_wrapper_loop(WriteTx, ReadTx) 
    198199    end.