package common type CtrlWait struct { // 用于暂停的chan P chan struct{} // 用于恢复的chan R chan struct{} } // Pause 暂停 func (c *CtrlWait) Pause() { c.P <- struct{}{} } // Resume 恢复 func (c *CtrlWait) Resume() { c.R <- struct{}{} } // NewCtrlWait 创建一个控制等待 func NewCtrlWait() *CtrlWait { return &CtrlWait{ P: make(chan struct{}), R: make(chan struct{}), } } // PassCtrl 全局控制等待 var PassCtrl = NewCtrlWait()