summaryrefslogtreecommitdiff
path: root/vendor/github.com/modern-go/concurrent/executor.go
blob: 623dba1ac00f22d1becb9e67e8a26a5b20bc2799 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
package concurrent

import "context"

// Executor replace go keyword to start a new goroutine
// the goroutine should cancel itself if the context passed in has been cancelled
// the goroutine started by the executor, is owned by the executor
// we can cancel all executors owned by the executor just by stop the executor itself
// however Executor interface does not Stop method, the one starting and owning executor
// should use the concrete type of executor, instead of this interface.
type Executor interface {
	// Go starts a new goroutine controlled by the context
	Go(handler func(ctx context.Context))
}