*** lib/kernel/src/dist_ac.erl Mon Jan 28 09:41:44 2002 --- ../otp_src_R8B-1.fixed/lib/kernel/src/dist_ac.erl Sun Apr 21 06:20:32 2002 *************** *** 29,31 **** %% Internal exports ! -export([init/1, handle_cast/2, handle_call/3, handle_info/2, terminate/2, send_timeout/3]). --- 29,31 ---- %% Internal exports ! -export([init/1, handle_cast/2, handle_call/3, handle_info/2, terminate/2, code_change/3, send_timeout/3]). *************** *** 205,207 **** introduce_me(Nodes, Appls) -> ! Msg = {dist_ac_new_node, ?vsn, node(), Appls, []}, filter(fun(Node) -> --- 205,207 ---- introduce_me(Nodes, Appls) -> ! Msg = {dist_ac_new_node_req, ?vsn, node(), Appls, []}, filter(fun(Node) -> *************** *** 226,228 **** %% don't handle version mismatch here. ! {dist_ac_new_node, Vsn, Node, HisAppls, HisStarted} -> monitor_node(Node, false), --- 226,241 ---- %% don't handle version mismatch here. ! ! {dist_ac_new_node_req, Vsn, OtherNode, HisAppls, HisStarted} -> ! MyStarted = zf(fun(Appl) when Appl#appl.id == local -> ! {true, {node(), Appl#appl.name}}; ! (_) -> ! false ! end, Appls), ! {?DIST_AC, OtherNode} ! {dist_ac_new_node_resp, ?vsn, node(), Appls, MyStarted}, ! NAppls = dist_merge(Appls, HisAppls, OtherNode), ! NRStarted = RStarted ++ HisStarted, ! monitor_node(Node, false), ! wait_dacs([Node|Nodes], KnownNodes, NAppls, NRStarted); ! ! {dist_ac_new_node_resp, Vsn, Node, HisAppls, HisStarted} -> monitor_node(Node, false), *************** *** 231,232 **** --- 244,246 ---- wait_dacs(Nodes, [Node | KnownNodes], NAppls, NRStarted); + {nodedown, Node} -> *************** *** 501,503 **** %%----------------------------------------------------------------- ! handle_info({dist_ac_new_node, Vsn, Node, HisAppls, []}, S) -> Appls = S#state.appls, --- 515,517 ---- %%----------------------------------------------------------------- ! handle_info({dist_ac_new_node_req, Vsn, Node, HisAppls, []}, S) -> Appls = S#state.appls, *************** *** 508,510 **** end, Appls), ! {?DIST_AC, Node} ! {dist_ac_new_node, ?vsn, node(), Appls, MyStarted}, NAppls = dist_merge(Appls, HisAppls, Node), --- 522,524 ---- end, Appls), ! {?DIST_AC, Node} ! {dist_ac_new_node_resp, ?vsn, node(), Appls, MyStarted}, NAppls = dist_merge(Appls, HisAppls, Node), *************** *** 585,586 **** --- 599,601 ---- undefined -> + {?DIST_AC, Node} ! {dist_ac_weight, Name, undefined, node()}, {noreply, *************** *** 589,590 **** --- 604,606 ---- {takeover, _} -> + {?DIST_AC, Node} ! {dist_ac_weight, Name, undefined, node()}, {noreply, *************** *** 593,594 **** --- 609,611 ---- {failover, _} -> + {?DIST_AC, Node} ! {dist_ac_weight, Name, undefined, node()}, {noreply, *************** *** 604,605 **** --- 621,623 ---- _ -> + {?DIST_AC, Node} ! {dist_ac_weight, Name, undefined, node()}, {noreply, *************** *** 708,709 **** --- 726,730 ---- + code_change(OldVsn,S,Extra) -> + {ok,S}. + %%%----------------------------------------------------------------- *************** *** 1108,1109 **** --- 1129,1132 ---- + find_alive_node([{undefined, Node} | Nodes], AliveNodes) -> + find_alive_node(Nodes, AliveNodes); find_alive_node([{_, Node} | Nodes], AliveNodes) ->