Merge branch 'master' into rabbitmq-management-499-followup
This commit is contained in:
		
						commit
						1eef0d2e2c
					
				|  | @ -112,7 +112,7 @@ invoke(Pids, Name, FunOrMFA) when is_list(Pids) -> | |||
|     %% infinity, and thus there is no process spawned in order to do | ||||
|     %% the sending. Thus calls can't overtake preceding calls/casts. | ||||
|     {Replies, BadNodes} = | ||||
|         case orddict:fetch_keys(Grouped) of | ||||
|         case maps:keys(Grouped) of | ||||
|             []          -> {[], []}; | ||||
|             RemoteNodes -> gen_server2:multi_call( | ||||
|                              RemoteNodes, delegate(self(), Name, RemoteNodes), | ||||
|  | @ -120,7 +120,7 @@ invoke(Pids, Name, FunOrMFA) when is_list(Pids) -> | |||
|         end, | ||||
|     BadPids = [{Pid, {exit, {nodedown, BadNode}, []}} || | ||||
|                   BadNode <- BadNodes, | ||||
|                   Pid     <- orddict:fetch(BadNode, Grouped)], | ||||
|                   Pid     <- maps:get(BadNode, Grouped)], | ||||
|     ResultsNoNode = lists:append([safe_invoke(LocalPids, FunOrMFA) | | ||||
|                                   [Results || {_Node, Results} <- Replies]]), | ||||
|     lists:foldl( | ||||
|  | @ -159,7 +159,7 @@ invoke_no_result(Pid, FunOrMFA) when is_pid(Pid) -> | |||
|     RemoteNode  = node(Pid), | ||||
|     gen_server2:abcast([RemoteNode], delegate(self(), ?DEFAULT_NAME, [RemoteNode]), | ||||
|                        {invoke, FunOrMFA, | ||||
|                         orddict:from_list([{RemoteNode, [Pid]}])}), | ||||
|                         maps:from_list([{RemoteNode, [Pid]}])}), | ||||
|     ok; | ||||
| invoke_no_result([], _FunOrMFA) -> %% optimisation | ||||
|     ok; | ||||
|  | @ -170,11 +170,11 @@ invoke_no_result([Pid], FunOrMFA) -> | |||
|     RemoteNode  = node(Pid), | ||||
|     gen_server2:abcast([RemoteNode], delegate(self(), ?DEFAULT_NAME, [RemoteNode]), | ||||
|                        {invoke, FunOrMFA, | ||||
|                         orddict:from_list([{RemoteNode, [Pid]}])}), | ||||
|                         maps:from_list([{RemoteNode, [Pid]}])}), | ||||
|     ok; | ||||
| invoke_no_result(Pids, FunOrMFA) when is_list(Pids) -> | ||||
|     {LocalPids, Grouped} = group_pids_by_node(Pids), | ||||
|     case orddict:fetch_keys(Grouped) of | ||||
|     case maps:keys(Grouped) of | ||||
|         []          -> ok; | ||||
|         RemoteNodes -> gen_server2:abcast( | ||||
|                          RemoteNodes, delegate(self(), ?DEFAULT_NAME, RemoteNodes), | ||||
|  | @ -192,9 +192,9 @@ group_pids_by_node(Pids) -> | |||
|               {[Pid | Local], Remote}; | ||||
|           (Pid, {Local, Remote}) -> | ||||
|               {Local, | ||||
|                orddict:update( | ||||
|                maps:update_with( | ||||
|                  node(Pid), fun (List) -> [Pid | List] end, [Pid], Remote)} | ||||
|       end, {[], orddict:new()}, Pids). | ||||
|       end, {[], maps:new()}, Pids). | ||||
| 
 | ||||
| delegate_name(Name, Hash) -> | ||||
|     list_to_atom(Name ++ integer_to_list(Hash)). | ||||
|  | @ -228,7 +228,7 @@ init([Name]) -> | |||
|      {backoff, ?HIBERNATE_AFTER_MIN, ?HIBERNATE_AFTER_MIN, ?DESIRED_HIBERNATE}}. | ||||
| 
 | ||||
| handle_call({invoke, FunOrMFA, Grouped}, _From, State = #state{node = Node}) -> | ||||
|     {reply, safe_invoke(orddict:fetch(Node, Grouped), FunOrMFA), State, | ||||
|     {reply, safe_invoke(maps:get(Node, Grouped), FunOrMFA), State, | ||||
|      hibernate}. | ||||
| 
 | ||||
| handle_cast({monitor, MonitoringPid, Pid}, | ||||
|  | @ -260,7 +260,7 @@ handle_cast({demonitor, MonitoringPid, Pid}, | |||
|     {noreply, State#state{monitors = Monitors1}, hibernate}; | ||||
| 
 | ||||
| handle_cast({invoke, FunOrMFA, Grouped}, State = #state{node = Node}) -> | ||||
|     _ = safe_invoke(orddict:fetch(Node, Grouped), FunOrMFA), | ||||
|     _ = safe_invoke(maps:get(Node, Grouped), FunOrMFA), | ||||
|     {noreply, State, hibernate}. | ||||
| 
 | ||||
| handle_info({'DOWN', Ref, process, Pid, Info}, | ||||
|  |  | |||
|  | @ -57,7 +57,7 @@ | |||
|          pid_change_node/2, node_to_fake_pid/1]). | ||||
| -export([version_compare/2, version_compare/3]). | ||||
| -export([version_minor_equivalent/2]). | ||||
| -export([dict_cons/3, orddict_cons/3, gb_trees_cons/3]). | ||||
| -export([dict_cons/3, orddict_cons/3, maps_cons/3, gb_trees_cons/3]). | ||||
| -export([gb_trees_fold/3, gb_trees_foreach/2]). | ||||
| -export([all_module_attributes/1, build_acyclic_graph/3]). | ||||
| -export([const/1]). | ||||
|  | @ -788,6 +788,9 @@ dict_cons(Key, Value, Dict) -> | |||
| orddict_cons(Key, Value, Dict) -> | ||||
|     orddict:update(Key, fun (List) -> [Value | List] end, [Value], Dict). | ||||
| 
 | ||||
| maps_cons(Key, Value, Map) -> | ||||
|     maps:update_with(Key, fun (List) -> [Value | List] end, [Value], Map). | ||||
| 
 | ||||
| gb_trees_cons(Key, Value, Tree) -> | ||||
|     case gb_trees:lookup(Key, Tree) of | ||||
|         {value, Values} -> gb_trees:update(Key, [Value | Values], Tree); | ||||
|  | @ -942,12 +945,13 @@ format_message_queue(_Opt, MQ) -> | |||
|      case Len > 100 of | ||||
|          false -> priority_queue:to_list(MQ); | ||||
|          true  -> {summary, | ||||
|                    orddict:to_list( | ||||
|                    maps:to_list( | ||||
|                      lists:foldl( | ||||
|                        fun ({P, V}, Counts) -> | ||||
|                                orddict:update_counter( | ||||
|                                  {P, format_message_queue_entry(V)}, 1, Counts) | ||||
|                        end, orddict:new(), priority_queue:to_list(MQ)))} | ||||
|                                maps:update_with( | ||||
|                                  {P, format_message_queue_entry(V)}, | ||||
|                                  fun(Old) -> Old + 1 end, 1, Counts) | ||||
|                        end, maps:new(), priority_queue:to_list(MQ)))} | ||||
|      end}. | ||||
| 
 | ||||
| format_message_queue_entry(V) when is_atom(V) -> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue