Sobes.tech
Junior — Middle

Is het verplicht om de Cancel-methode te gebruiken bij het maken van een context met een timeout via Context.WithTimeout?

sobes.tech AI

Antwoord van AI

Ja, het wordt sterk aanbevolen om de functie Cancel aan te roepen, geretourneerd door context.WithTimeout, om de bronnen die met de context zijn verbonden vrij te maken zodra ze niet meer nodig zijn. Zelfs als de timeout afgaat en de context automatisch wordt geannuleerd, helpt het aanroepen van Cancel om resourcelekken te voorkomen.

Voorbeeld van gebruik:

ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)
defer cancel()

// Gebruik ctx in operaties

Het aanroepen van defer cancel() zorgt ervoor dat de bronnen worden vrijgegeven bij het verlaten van de functie, zelfs als de operatie eerder dan de timeout wordt voltooid.