30 lines
468 B
Go
30 lines
468 B
Go
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()
|