Sobes.tech
Junior — Middle

Czy używałeś mechanizmu WithCancel do zarządzania anulowaniem kontekstu w swoich projektach?

sobes.tech AI

Odpowiedź od AI

Tak, mechanizm WithCancel z pakietu context w Go jest często używany do zarządzania anulowaniem operacji i goroutine. Pozwala na utworzenie kontekstu, który można ręcznie anulować, co jest przydatne do przerwania długich lub asynchronicznych zadań.

Przykład użycia:

ctx, cancel := context.WithCancel(context.Background())

// Uruchamiamy goroutine, która nasłuchuje na anulowanie
go func() {
    <-ctx.Done()
    fmt.Println("Operacja anulowana")
}()

// W pewnym momencie wywołujemy cancel()
cancel()

To pozwala kontrolować cykl życia operacji i zapobiega wyciekom zasobów.