Revert changes to add proc_name via gen_server2, instead do it explicitly with a helper macro.
This commit is contained in:
		
							parent
							
								
									7c3f256df2
								
							
						
					
					
						commit
						f7834aa144
					
				|  | @ -111,3 +111,5 @@ | |||
| -define(INVALID_HEADERS_KEY, <<"x-invalid-headers">>). | ||||
| -define(ROUTING_HEADERS, [<<"CC">>, <<"BCC">>]). | ||||
| -define(DELETED_HEADER, <<"BCC">>). | ||||
| 
 | ||||
| -define(store_proc_name(N), rabbit_misc:store_proc_name(?MODULE, N)). | ||||
|  |  | |||
|  | @ -81,10 +81,6 @@ | |||
| %% process as sys:get_status/1 would). Pass through a function which | ||||
| %% can be invoked on the state, get back the result. The state is not | ||||
| %% modified. | ||||
| %% | ||||
| %% 10) The Options parameter to start / start_link can include | ||||
| %% {proc_name, Name}. This name is stored in the process dictionary | ||||
| %% for later debugging. | ||||
| 
 | ||||
| %% All modifications are (C) 2009-2013 GoPivotal, Inc. | ||||
| 
 | ||||
|  | @ -287,7 +283,7 @@ behaviour_info(_Other) -> | |||
| %%%    Name ::= {local, atom()} | {global, atom()} | ||||
| %%%    Mod  ::= atom(), callback module implementing the 'real' server | ||||
| %%%    Args ::= term(), init arguments (to Mod:init/1) | ||||
| %%%    Options ::= [{timeout, Timeout} | {debug, [Flag]} | {proc_name, term()}] | ||||
| %%%    Options ::= [{timeout, Timeout} | {debug, [Flag]}] | ||||
| %%%      Flag ::= trace | log | {logfile, File} | statistics | debug | ||||
| %%%          (debug == log && statistics) | ||||
| %%% Returns: {ok, Pid} | | ||||
|  | @ -467,10 +463,6 @@ init_it(Starter, Parent, Name0, Mod, Args, Options) -> | |||
|                               mod     = Mod, | ||||
|                               queue   = Queue, | ||||
|                               debug   = Debug }), | ||||
|     case opt(proc_name, Options) of | ||||
|         {ok, ProcName} -> put(process_name, {Mod, ProcName}); | ||||
|         false          -> ok | ||||
|     end, | ||||
|     case catch Mod:init(Args) of | ||||
|         {ok, State} -> | ||||
|             proc_lib:init_ack(Starter, {ok, self()}), | ||||
|  | @ -909,17 +901,9 @@ common_noreply(_Name, _NState, [] = _Debug) -> | |||
| common_noreply(Name, NState, Debug) -> | ||||
|     sys:handle_debug(Debug, fun print_event/3, Name, {noreply, NState}). | ||||
| 
 | ||||
| 
 | ||||
| common_become(Name, OldMod, NewMod, NState, Debug) -> | ||||
|     case get(process_name) of | ||||
|         {OldMod, ProcName} -> put(process_name, {NewMod, ProcName}); | ||||
|         _                  -> ok | ||||
|     end, | ||||
|     common_become0(Name, NewMod, NState, Debug). | ||||
| 
 | ||||
| common_become0(_Name, _Mod, _NState, [] = _Debug) -> | ||||
| common_become(_Name, _Mod, _NState, [] = _Debug) -> | ||||
|     []; | ||||
| common_become0(Name, Mod, NState, Debug) -> | ||||
| common_become(Name, Mod, NState, Debug) -> | ||||
|     sys:handle_debug(Debug, fun print_event/3, Name, {become, Mod, NState}). | ||||
| 
 | ||||
| handle_msg({'$gen_call', From, Msg}, GS2State = #gs2_state { mod = Mod, | ||||
|  | @ -951,7 +935,6 @@ handle_msg(Msg, GS2State = #gs2_state { mod = Mod, state = State }) -> | |||
|     handle_common_reply(Reply, Msg, GS2State). | ||||
| 
 | ||||
| handle_common_reply(Reply, Msg, GS2State = #gs2_state { name  = Name, | ||||
|                                                         mod   = Mod0, | ||||
|                                                         debug = Debug}) -> | ||||
|     case Reply of | ||||
|         {noreply, NState} -> | ||||
|  | @ -965,14 +948,14 @@ handle_common_reply(Reply, Msg, GS2State = #gs2_state { name  = Name, | |||
|                                       time  = Time1, | ||||
|                                       debug = Debug1}); | ||||
|         {become, Mod, NState} -> | ||||
|             Debug1 = common_become(Name, Mod0, Mod, NState, Debug), | ||||
|             Debug1 = common_become(Name, Mod, NState, Debug), | ||||
|             loop(find_prioritisers( | ||||
|                    GS2State #gs2_state { mod   = Mod, | ||||
|                                          state = NState, | ||||
|                                          time  = infinity, | ||||
|                                          debug = Debug1 })); | ||||
|         {become, Mod, NState, Time1} -> | ||||
|             Debug1 = common_become(Name, Mod0, Mod, NState, Debug), | ||||
|             Debug1 = common_become(Name, Mod, NState, Debug), | ||||
|             loop(find_prioritisers( | ||||
|                    GS2State #gs2_state { mod   = Mod, | ||||
|                                          state = NState, | ||||
|  |  | |||
|  | @ -517,8 +517,7 @@ table_definitions() -> | |||
|     [{Name, [?TABLE_MATCH | Attributes]}]. | ||||
| 
 | ||||
| start_link(GroupName, Module, Args, TxnFun) -> | ||||
|     gen_server2:start_link( | ||||
|       ?MODULE, [GroupName, Module, Args, TxnFun], [{proc_name, GroupName}]). | ||||
|     gen_server2:start_link(?MODULE, [GroupName, Module, Args, TxnFun], []). | ||||
| 
 | ||||
| leave(Server) -> | ||||
|     gen_server2:cast(Server, leave). | ||||
|  | @ -543,6 +542,7 @@ forget_group(GroupName) -> | |||
|     ok. | ||||
| 
 | ||||
| init([GroupName, Module, Args, TxnFun]) -> | ||||
|     put(process_name, {?MODULE, GroupName}), | ||||
|     {MegaSecs, Secs, MicroSecs} = now(), | ||||
|     random:seed(MegaSecs, Secs, MicroSecs), | ||||
|     Self = make_member(GroupName), | ||||
|  |  | |||
|  | @ -99,8 +99,7 @@ | |||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
| start_link(Q) -> | ||||
|     gen_server2:start_link(?MODULE, Q, [{proc_name, Q#amqqueue.name}]). | ||||
| start_link(Q) -> gen_server2:start_link(?MODULE, Q, []). | ||||
| 
 | ||||
| info_keys() -> ?INFO_KEYS. | ||||
| 
 | ||||
|  | @ -108,6 +107,7 @@ info_keys() -> ?INFO_KEYS. | |||
| 
 | ||||
| init(Q) -> | ||||
|     process_flag(trap_exit, true), | ||||
|     ?store_proc_name(Q#amqqueue.name), | ||||
|     {ok, init_state(Q#amqqueue{pid = self()}), hibernate, | ||||
|      {backoff, ?HIBERNATE_AFTER_MIN, ?HIBERNATE_AFTER_MIN, ?DESIRED_HIBERNATE}}. | ||||
| 
 | ||||
|  |  | |||
|  | @ -119,8 +119,7 @@ start_link(Channel, ReaderPid, WriterPid, ConnPid, ConnName, Protocol, User, | |||
|            VHost, Capabilities, CollectorPid, Limiter) -> | ||||
|     gen_server2:start_link( | ||||
|       ?MODULE, [Channel, ReaderPid, WriterPid, ConnPid, ConnName, Protocol, | ||||
|                 User, VHost, Capabilities, CollectorPid, Limiter], | ||||
|       [{proc_name, {ConnName, Channel}}]). | ||||
|                 User, VHost, Capabilities, CollectorPid, Limiter], []). | ||||
| 
 | ||||
| do(Pid, Method) -> | ||||
|     do(Pid, Method, none). | ||||
|  | @ -195,6 +194,7 @@ force_event_refresh() -> | |||
| init([Channel, ReaderPid, WriterPid, ConnPid, ConnName, Protocol, User, VHost, | ||||
|       Capabilities, CollectorPid, LimiterPid]) -> | ||||
|     process_flag(trap_exit, true), | ||||
|     ?store_proc_name({ConnName, Channel}), | ||||
|     ok = pg_local:join(rabbit_channels, self()), | ||||
|     State = #ch{state                   = starting, | ||||
|                 protocol                = Protocol, | ||||
|  |  | |||
|  | @ -117,6 +117,8 @@ | |||
| 
 | ||||
| -module(rabbit_limiter). | ||||
| 
 | ||||
| -include("rabbit.hrl"). | ||||
| 
 | ||||
| -behaviour(gen_server2). | ||||
| 
 | ||||
| -export([start_link/1]). | ||||
|  | @ -194,8 +196,7 @@ | |||
| %% API | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
| start_link(ProcName) -> | ||||
|     gen_server2:start_link(?MODULE, [], [{proc_name, ProcName}]). | ||||
| start_link(ProcName) -> gen_server2:start_link(?MODULE, [ProcName], []). | ||||
| 
 | ||||
| new(Pid) -> | ||||
|     %% this a 'call' to ensure that it is invoked at most once. | ||||
|  | @ -322,7 +323,8 @@ update_credit(CTag, Credit, Drain, Credits) -> | |||
| %% gen_server callbacks | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
| init([]) -> {ok, #lim{}}. | ||||
| init([ProcName]) -> ?store_proc_name(ProcName), | ||||
|                     {ok, #lim{}}. | ||||
| 
 | ||||
| prioritise_call(get_prefetch_limit, _From, _Len, _State) -> 9; | ||||
| prioritise_call(_Msg,               _From, _Len, _State) -> 0. | ||||
|  |  | |||
|  | @ -310,8 +310,7 @@ | |||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
| start_link(Queue, GM, DeathFun, DepthFun) -> | ||||
|     gen_server2:start_link(?MODULE, [Queue, GM, DeathFun, DepthFun], | ||||
|                            [{proc_name, Queue#amqqueue.name}]). | ||||
|     gen_server2:start_link(?MODULE, [Queue, GM, DeathFun, DepthFun], []). | ||||
| 
 | ||||
| get_gm(CPid) -> | ||||
|     gen_server2:call(CPid, get_gm, infinity). | ||||
|  | @ -324,6 +323,7 @@ ensure_monitoring(CPid, Pids) -> | |||
| %% --------------------------------------------------------------------------- | ||||
| 
 | ||||
| init([#amqqueue { name = QueueName } = Q, GM, DeathFun, DepthFun]) -> | ||||
|     ?store_proc_name(QueueName), | ||||
|     GM1 = case GM of | ||||
|               undefined -> | ||||
|                   {ok, GM2} = gm:start_link( | ||||
|  |  | |||
|  | @ -71,8 +71,7 @@ | |||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
| start_link(Q) -> gen_server2:start_link( | ||||
|                    ?MODULE, Q, [{proc_name, Q#amqqueue.name}]). | ||||
| start_link(Q) -> gen_server2:start_link(?MODULE, Q, []). | ||||
| 
 | ||||
| set_maximum_since_use(QPid, Age) -> | ||||
|     gen_server2:cast(QPid, {set_maximum_since_use, Age}). | ||||
|  | @ -80,6 +79,7 @@ set_maximum_since_use(QPid, Age) -> | |||
| info(QPid) -> gen_server2:call(QPid, info, infinity). | ||||
| 
 | ||||
| init(Q) -> | ||||
|     ?store_proc_name(Q#amqqueue.name), | ||||
|     {ok, {not_started, Q}, hibernate, | ||||
|      {backoff, ?HIBERNATE_AFTER_MIN, ?HIBERNATE_AFTER_MIN, | ||||
|       ?DESIRED_HIBERNATE}}. | ||||
|  | @ -617,6 +617,7 @@ promote_me(From, #state { q                   = Q = #amqqueue { name = QName }, | |||
|     KS1 = lists:foldl(fun (ChPid0, KS0) -> | ||||
|                               pmon:demonitor(ChPid0, KS0) | ||||
|                       end, KS, AwaitGmDown), | ||||
|     rabbit_misc:store_proc_name(rabbit_amqqueue_process, QName), | ||||
|     rabbit_amqqueue_process:init_with_backing_queue_state( | ||||
|       Q1, rabbit_mirror_queue_master, MasterState, RateTRef, Deliveries, KS1, | ||||
|       MTC). | ||||
|  |  | |||
|  | @ -84,7 +84,7 @@ | |||
| master_prepare(Ref, QName, Log, SPids) -> | ||||
|     MPid = self(), | ||||
|     spawn_link(fun () -> | ||||
|                        rabbit_misc:store_proc_name(?MODULE, QName), | ||||
|                        ?store_proc_name(QName), | ||||
|                        syncer(Ref, Log, MPid, SPids) | ||||
|                end). | ||||
| 
 | ||||
|  |  | |||
|  | @ -16,7 +16,7 @@ | |||
| 
 | ||||
| -module(rabbit_queue_collector). | ||||
| 
 | ||||
| -behaviour(gen_server2). | ||||
| -behaviour(gen_server). | ||||
| 
 | ||||
| -export([start_link/1, register/2, delete_all/1]). | ||||
| 
 | ||||
|  | @ -41,17 +41,18 @@ | |||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
| start_link(ProcName) -> | ||||
|     gen_server2:start_link(?MODULE, [], [{proc_name, ProcName}]). | ||||
|     gen_server:start_link(?MODULE, [ProcName], []). | ||||
| 
 | ||||
| register(CollectorPid, Q) -> | ||||
|     gen_server2:call(CollectorPid, {register, Q}, infinity). | ||||
|     gen_server:call(CollectorPid, {register, Q}, infinity). | ||||
| 
 | ||||
| delete_all(CollectorPid) -> | ||||
|     gen_server2:call(CollectorPid, delete_all, infinity). | ||||
|     gen_server:call(CollectorPid, delete_all, infinity). | ||||
| 
 | ||||
| %%---------------------------------------------------------------------------- | ||||
| 
 | ||||
| init([]) -> | ||||
| init([ProcName]) -> | ||||
|     ?store_proc_name(ProcName), | ||||
|     {ok, #state{monitors = pmon:new(), delete_from = undefined}}. | ||||
| 
 | ||||
| %%-------------------------------------------------------------------------- | ||||
|  | @ -79,7 +80,7 @@ handle_info({'DOWN', _MRef, process, DownPid, _Reason}, | |||
|             State = #state{monitors = QMons, delete_from = Deleting}) -> | ||||
|     QMons1 = pmon:erase(DownPid, QMons), | ||||
|     case Deleting =/= undefined andalso pmon:is_empty(QMons1) of | ||||
|         true  -> gen_server2:reply(Deleting, ok); | ||||
|         true  -> gen_server:reply(Deleting, ok); | ||||
|         false -> ok | ||||
|     end, | ||||
|     {noreply, State#state{monitors = QMons1}}. | ||||
|  |  | |||
|  | @ -214,7 +214,7 @@ start_connection(Parent, HelperSup, Deb, Sock, SockTransform) -> | |||
|     erlang:send_after(?HANDSHAKE_TIMEOUT * 1000, self(), handshake_timeout), | ||||
|     {PeerHost, PeerPort, Host, Port} = | ||||
|         socket_op(Sock, fun (S) -> rabbit_net:socket_ends(S, inbound) end), | ||||
|     rabbit_misc:store_proc_name(?MODULE, list_to_binary(Name)), | ||||
|     ?store_proc_name(list_to_binary(Name)), | ||||
|     State = #v1{parent              = Parent, | ||||
|                 sock                = ClientSock, | ||||
|                 connection          = #connection{ | ||||
|  |  | |||
|  | @ -144,7 +144,7 @@ system_code_change(Misc, _Module, _OldVsn, _Extra) -> | |||
| 
 | ||||
| enter_mainloop(Identity, State) -> | ||||
|     Deb = sys:debug_options([]), | ||||
|     rabbit_misc:store_proc_name(?MODULE, Identity), | ||||
|     ?store_proc_name(Identity), | ||||
|     mainloop(Deb, State). | ||||
| 
 | ||||
| mainloop(Deb, State) -> | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue