Context and Cancellation
Cancel Signal
A cancel function marks a context as done without stopping the program immediately.
Cancel Signal
cancel_signal.go
package main
import (
"context"
"fmt"
)
func main() {
var task =
ctx, cancel := context.WithCancel(context.Background())
fmt.Println("task=", task)
fmt.Println("beforeCancel=", ctx.Err() == nil)
cancel()
fmt.Println("afterCancel=", ctx.Err())
}
package main
import (
"context"
"fmt"
)
func main() {
var task =
ctx, cancel := context.WithCancel(context.Background())
fmt.Println("task=", task)
fmt.Println("beforeCancel=", ctx.Err() == nil)
cancel()
fmt.Println("afterCancel=", ctx.Err())
}
package main
import (
"context"
"fmt"
)
func main() {
var task =
ctx, cancel := context.WithCancel(context.Background())
fmt.Println("task=", task)
fmt.Println("beforeCancel=", ctx.Err() == nil)
cancel()
fmt.Println("afterCancel=", ctx.Err())
}
cancel function
`context.WithCancel` returns a child context and a function that records cancellation.