私は、次のコードを持っている:私はそこにdefer cancel()
を入れていなかった場合に何が起こるかコンテキストをキャンセルしないとどうなりますか?
func Call(ctx context.Context, payload Payload) (Response, error) {
req, err := http.NewRequest(...) // Some code that creates request from payload
ctx, cancel = context.withTimeout(ctx, time.Duration(3) * time.Second)
defer cancel()
return http.DefaultClient.Do(req)
}
を? go vet
この
を警告しcontext.WithTimeoutによって返さキャンセル機能は、コンテキストが漏洩され、これがどのような影響を持つことになりますどのように
を漏らす状況を避けるために、廃棄されていない、と呼ばれるべき?ありがとう