diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2013-12-06 16:25:42 +0000 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2013-12-06 16:25:42 +0000 |
commit | 9937bf871b86fbe60b6963a20ffc3db84bd18560 (patch) | |
tree | 153deb41d16acc92459e43dc088b63215992435e | |
parent | e5d86bf990699ba532d0997d4410b916ab06bf3f (diff) | |
download | rabbitmq-server-9937bf871b86fbe60b6963a20ffc3db84bd18560.tar.gz |
Store connection name in server writers (but not Erlang client ones)
-rw-r--r-- | src/rabbit_channel_sup.erl | 6 | ||||
-rw-r--r-- | src/rabbit_writer.erl | 34 |
2 files changed, 22 insertions, 18 deletions
diff --git a/src/rabbit_channel_sup.erl b/src/rabbit_channel_sup.erl index df2e80ca..56c5dbfe 100644 --- a/src/rabbit_channel_sup.erl +++ b/src/rabbit_channel_sup.erl @@ -49,7 +49,7 @@ start_link({tcp, Sock, Channel, FrameMax, ReaderPid, ConnName, Protocol, User, VHost, Capabilities, Collector}) -> {ok, SupPid} = supervisor2:start_link(?MODULE, {tcp, Sock, Channel, FrameMax, - ReaderPid, Protocol}), + ReaderPid, Protocol, ConnName}), [LimiterPid] = supervisor2:find_child(SupPid, limiter), [WriterPid] = supervisor2:find_child(SupPid, writer), {ok, ChannelPid} = @@ -81,9 +81,9 @@ start_link({direct, Channel, ClientChannelPid, ConnPid, ConnName, Protocol, init(Type) -> {ok, {{one_for_all, 0, 1}, child_specs(Type)}}. -child_specs({tcp, Sock, Channel, FrameMax, ReaderPid, Protocol}) -> +child_specs({tcp, Sock, Channel, FrameMax, ReaderPid, Protocol, ConnName}) -> [{writer, {rabbit_writer, start_link, - [Sock, Channel, FrameMax, Protocol, ReaderPid, true]}, + [Sock, Channel, FrameMax, Protocol, ReaderPid, true, ConnName]}, intrinsic, ?MAX_WAIT, worker, [rabbit_writer]} | child_specs(direct)]; child_specs(direct) -> [{limiter, {rabbit_limiter, start_link, []}, diff --git a/src/rabbit_writer.erl b/src/rabbit_writer.erl index 77521ca5..908c3227 100644 --- a/src/rabbit_writer.erl +++ b/src/rabbit_writer.erl @@ -18,7 +18,7 @@ -include("rabbit.hrl"). -include("rabbit_framing.hrl"). --export([start/5, start_link/5, start/6, start_link/6]). +-export([start/5, start_link/5, start/7, start_link/7]). -export([system_continue/3, system_terminate/4, system_code_change/4]). @@ -49,13 +49,13 @@ (rabbit_net:socket(), rabbit_channel:channel_number(), non_neg_integer(), rabbit_types:protocol(), pid()) -> rabbit_types:ok(pid())). --spec(start/6 :: +-spec(start/7 :: (rabbit_net:socket(), rabbit_channel:channel_number(), - non_neg_integer(), rabbit_types:protocol(), pid(), boolean()) + non_neg_integer(), rabbit_types:protocol(), pid(), boolean(), string()) -> rabbit_types:ok(pid())). --spec(start_link/6 :: +-spec(start_link/7 :: (rabbit_net:socket(), rabbit_channel:channel_number(), - non_neg_integer(), rabbit_types:protocol(), pid(), boolean()) + non_neg_integer(), rabbit_types:protocol(), pid(), boolean(), string()) -> rabbit_types:ok(pid())). -spec(system_code_change/4 :: (_,_,_,_) -> {'ok',_}). @@ -100,22 +100,22 @@ %%--------------------------------------------------------------------------- start(Sock, Channel, FrameMax, Protocol, ReaderPid) -> - start(Sock, Channel, FrameMax, Protocol, ReaderPid, false). + start(Sock, Channel, FrameMax, Protocol, ReaderPid, false, unknown). start_link(Sock, Channel, FrameMax, Protocol, ReaderPid) -> - start_link(Sock, Channel, FrameMax, Protocol, ReaderPid, false). + start_link(Sock, Channel, FrameMax, Protocol, ReaderPid, false, unknown). -start(Sock, Channel, FrameMax, Protocol, ReaderPid, ReaderWantsStats) -> +start(Sock, Channel, FrameMax, Protocol, ReaderPid, ConnName, + ReaderWantsStats) -> State = initial_state(Sock, Channel, FrameMax, Protocol, ReaderPid, ReaderWantsStats), - Deb = sys:debug_options([]), - {ok, proc_lib:spawn(?MODULE, enter_mainloop, [Deb, State])}. + {ok, proc_lib:spawn(?MODULE, enter_mainloop, [ConnName, State])}. -start_link(Sock, Channel, FrameMax, Protocol, ReaderPid, ReaderWantsStats) -> +start_link(Sock, Channel, FrameMax, Protocol, ReaderPid, ConnName, + ReaderWantsStats) -> State = initial_state(Sock, Channel, FrameMax, Protocol, ReaderPid, ReaderWantsStats), - Deb = sys:debug_options([]), - {ok, proc_lib:spawn_link(?MODULE, enter_mainloop, [Deb, State])}. + {ok, proc_lib:spawn_link(?MODULE, enter_mainloop, [ConnName, State])}. initial_state(Sock, Channel, FrameMax, Protocol, ReaderPid, ReaderWantsStats) -> (case ReaderWantsStats of @@ -138,8 +138,12 @@ system_terminate(Reason, _Parent, _Deb, _State) -> system_code_change(Misc, _Module, _OldVsn, _Extra) -> {ok, Misc}. -enter_mainloop(Deb, State = #wstate{channel = Channel}) -> - put(rabbit_process_name, {writer, unknown, Channel}), +enter_mainloop(ConnName, State = #wstate{channel = Channel}) -> + Deb = sys:debug_options([]), + put(rabbit_process_name, case ConnName of + unknown -> writer; + _ -> {writer, {ConnName, Channel}} + end), mainloop(Deb, State). mainloop(Deb, State) -> |