| 1234567891011121314151617181920212223242526272829 | package signaltype CancelSignal struct {	cancel chan struct{}	done   chan struct{}}func NewCloseSignal() *CancelSignal {	return &CancelSignal{		cancel: make(chan struct{}),		done:   make(chan struct{}),	}}func (this *CancelSignal) Cancel() {	close(this.cancel)}func (this *CancelSignal) WaitForCancel() <-chan struct{} {	return this.cancel}func (this *CancelSignal) Done() {	close(this.done)}func (this *CancelSignal) WaitForDone() <-chan struct{} {	return this.done}
 |