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.