prevents a goroutine from being leaked if a timeout occurs when calling forceClo...
source link: https://github.com/aws/amazon-ecs-agent/pull/2854
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Summary
Fixes potential edge case which could result in a goroutine leak, applies general best practice for working with channels.
A goroutine leak could occur in the following edge case scenario:
In the case that the case
in https://github.com/aws/amazon-ecs-agent/blob/master/agent/wsclient/client.go#L274-L285 executes first, the function will return and the anonymous goroutine in https://github.com/aws/amazon-ecs-agent/blob/master/agent/wsclient/client.go#L269 would continue to be blocked, causing a goroutine leak. Using a buffered channel prevents this issue.
Implementation details
Made an unbuffered channel into a buffered channel
Testing
New tests cover the changes: no
Description for the changelog
bugfix - fix potential goroutine leak when closing websocket connections
Licensing
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK