Logo

Programming-Idioms

  • Erlang
  • Ada

Idiom #229 Cancel an operation

Interrupt an ongoing processing p.

import "context"
ctx, cancel := context.WithCancel(context.Background())
go p(ctx)

somethingElse()

cancel()

Pass a Context to p and execute p.
p is responsible for shutting down gracefully when ctx is canceled

New implementation...
< >
programming-idioms.org