diff options
author | Simon MacMullen <simon@rabbitmq.com> | 2011-08-03 17:16:15 +0100 |
---|---|---|
committer | Simon MacMullen <simon@rabbitmq.com> | 2011-08-03 17:16:15 +0100 |
commit | 46944ea0a42980c8d82d6518ad0d9eee99bc3ff5 (patch) | |
tree | dfdd5749f429623c6669869eb223b497cf31b239 | |
parent | 9788dba864f896b590d302c6be6bc5bcabda8f8e (diff) | |
download | rabbitmq-server-bug24294.tar.gz |
Parameterise channel starting, export inet_op/1.bug24294
-rw-r--r-- | src/rabbit_amqp.erl | 3 | ||||
-rw-r--r-- | src/rabbit_amqp_0_x.erl | 6 | ||||
-rw-r--r-- | src/rabbit_channel_sup.erl | 10 | ||||
-rw-r--r-- | src/rabbit_reader.erl | 3 |
4 files changed, 13 insertions, 9 deletions
diff --git a/src/rabbit_amqp.erl b/src/rabbit_amqp.erl index 9c748a77..ded5a8d3 100644 --- a/src/rabbit_amqp.erl +++ b/src/rabbit_amqp.erl @@ -24,7 +24,8 @@ behaviour_info(callbacks) -> {start_connection, 2}, {handle_input, 3}, {assemble_frame, 3}, - {assemble_frames, 5} + {assemble_frames, 5}, + {channel_spec, 1} ]; behaviour_info(_Other) -> undefined. diff --git a/src/rabbit_amqp_0_x.erl b/src/rabbit_amqp_0_x.erl index f0173556..6cab0792 100644 --- a/src/rabbit_amqp_0_x.erl +++ b/src/rabbit_amqp_0_x.erl @@ -19,7 +19,7 @@ -include("rabbit_framing.hrl"). -export([accept_handshake_bytes/1, start_connection/2, handle_input/3, - assemble_frame/3, assemble_frames/5]). + assemble_frame/3, assemble_frames/5, channel_spec/1]). -export([process_channel_frame/5]). %% used by erlang-client TODO @@ -127,6 +127,10 @@ assemble_frames(Channel, MethodRecord, Content, FrameMax, Protocol) -> Channel, Content, FrameMax, Protocol), [MethodFrame | ContentFrames]. +channel_spec(Args) -> + {channel, {rabbit_channel, start_link, Args}, + intrinsic, ?MAX_WAIT, worker, [rabbit_channel]}. + %%-------------------------------------------------------------------------- handle_frame(Type, 0, Payload, diff --git a/src/rabbit_channel_sup.erl b/src/rabbit_channel_sup.erl index 68f69e6e..b8c4ff8f 100644 --- a/src/rabbit_channel_sup.erl +++ b/src/rabbit_channel_sup.erl @@ -56,12 +56,10 @@ start_link({tcp, Sock, Channel, FrameMax, ReaderPid, Module, Protocol, intrinsic, ?MAX_WAIT, worker, [rabbit_writer]}), {ok, ChannelPid} = supervisor2:start_child( - SupPid, - {channel, {rabbit_channel, start_link, - [Channel, ReaderPid, WriterPid, ReaderPid, Protocol, - User, VHost, Capabilities, Collector, - start_limiter_fun(SupPid)]}, - intrinsic, ?MAX_WAIT, worker, [rabbit_channel]}), + SupPid, Module:channel_spec( + [Channel, ReaderPid, WriterPid, ReaderPid, Protocol, + User, VHost, Capabilities, Collector, + start_limiter_fun(SupPid)])), {ok, AState} = rabbit_command_assembler:init(Protocol), {ok, SupPid, {ChannelPid, AState}}; start_link({direct, Channel, ClientChannelPid, ConnPid, Protocol, User, VHost, diff --git a/src/rabbit_reader.erl b/src/rabbit_reader.erl index 062c6eb6..3d55d46e 100644 --- a/src/rabbit_reader.erl +++ b/src/rabbit_reader.erl @@ -28,7 +28,8 @@ -export([all_channels/0, channel_cleanup/1, emit_stats/1, infos/2, internal_conserve_memory/2, maybe_close/1, send_exception/3, - send_on_channel0/4, switch_callback/3, server_properties/1]). + send_on_channel0/4, switch_callback/3, server_properties/1, + inet_op/1]). -define(HANDSHAKE_TIMEOUT, 10). -define(NORMAL_TIMEOUT, 3). |