Skip to content

Commit b9060a2

Browse files
committed
Fix the value passed into the Name parameter of the subchannel gproc_pool disconnect_worker and remove_worker functions
1 parent 3b72fbb commit b9060a2

File tree

1 file changed

+14
-11
lines changed

1 file changed

+14
-11
lines changed

src/grpcbox_subchannel.erl

Lines changed: 14 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
ready/3,
1515
disconnected/3]).
1616

17-
-record(data, {endpoint :: grpcbox_channel:endpoint(),
17+
-record(data, {name :: any(),
18+
endpoint :: grpcbox_channel:endpoint(),
1819
channel :: grpcbox_channel:t(),
1920
info :: #{authority := binary(),
2021
scheme := binary(),
@@ -41,8 +42,10 @@ stop(Pid, Reason) ->
4142

4243
init([Name, Channel, Endpoint, Encoding, StatsHandler]) ->
4344
process_flag(trap_exit, true),
45+
4446
gproc_pool:connect_worker(Channel, Name),
45-
{ok, disconnected, #data{conn=undefined,
47+
{ok, disconnected, #data{name=Name,
48+
conn=undefined,
4649
info=info_map(Endpoint, Encoding, StatsHandler),
4750
endpoint=Endpoint,
4851
channel=Channel}}.
@@ -89,24 +92,24 @@ handle_event(_, _, _) ->
8992
keep_state_and_data.
9093

9194
terminate(_Reason, _State, #data{conn=undefined,
92-
endpoint=Endpoint,
95+
name=Name,
9396
channel=Channel}) ->
94-
gproc_pool:disconnect_worker(Channel, Endpoint),
95-
gproc_pool:remove_worker(Channel, Endpoint),
97+
gproc_pool:disconnect_worker(Channel, Name),
98+
gproc_pool:remove_worker(Channel, Name),
9699
ok;
97100
terminate(normal, _State, #data{conn=Pid,
98-
endpoint=Endpoint,
101+
name=Name,
99102
channel=Channel}) ->
100103
h2_connection:stop(Pid),
101-
gproc_pool:disconnect_worker(Channel, Endpoint),
102-
gproc_pool:remove_worker(Channel, Endpoint),
104+
gproc_pool:disconnect_worker(Channel, Name),
105+
gproc_pool:remove_worker(Channel, Name),
103106
ok;
104107
terminate(Reason, _State, #data{conn=Pid,
105-
endpoint=Endpoint,
108+
name=Name,
106109
channel=Channel}) ->
110+
gproc_pool:disconnect_worker(Channel, Name),
111+
gproc_pool:remove_worker(Channel, Name),
107112
exit(Pid, Reason),
108-
gproc_pool:disconnect_worker(Channel, Endpoint),
109-
gproc_pool:remove_worker(Channel, Endpoint),
110113
ok.
111114

112115
connect(Data=#data{conn=undefined,

0 commit comments

Comments
 (0)