What happens if I don't cancel a Context?

前端 未结 2 562
不知归路
不知归路 2021-02-01 03:24

I have the following code:

func Call(ctx context.Context, payload Payload) (Response, error) {
    req, err := http.NewRequest(...) // Some code that creates req         


        
2条回答
  •  予麋鹿
    予麋鹿 (楼主)
    2021-02-01 04:08

    If you fail to cancel the context, the goroutine that WithCancel or WithTimeout created will be retained in memory indefinitely (until the program shuts down), causing a memory leak. If you do this a lot, your memory will balloon significantly. It's best practice to use a defer cancel() immediately after calling WithCancel() or WithTimeout()

提交回复
热议问题