Skip to content

Commit 5eefff5

Browse files
authored
fix: Goroutine leak (#135)
1 parent 90cca0d commit 5eefff5

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

proxy/admin_stream_transfer.go

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,9 +35,14 @@ func startListener[T StreamRequestOrResponse](
3535
) chan ValueWithError[T] {
3636
targetStreamServerData := make(chan ValueWithError[T])
3737
go func() {
38+
defer close(targetStreamServerData)
3839
for !shutdownChan.IsShutdown() {
3940
req, err := receiver.Recv()
40-
targetStreamServerData <- ValueWithError[T]{val: req, err: err}
41+
select {
42+
case targetStreamServerData <- ValueWithError[T]{val: req, err: err}:
43+
case <-shutdownChan.Channel():
44+
return
45+
}
4146
}
4247
}()
4348
return targetStreamServerData

0 commit comments

Comments
 (0)