- Make it possible to cancel from goroutine.
func main() {
own := goctx.NewOwner()
go gorun(own.NewWorker())
go gorun(own.NewWorker())
go gorun(own.NewWorker())
}
func gorun(wk goctx.Worker) {
for {
select {
case <-wk.RecvCancel():
return
default:
}
//yourroutine
wk.Cancel() //call the withcancel at owner.
}
}