From d00657def022acdd98f16f0045f84fbc5e1d295f Mon Sep 17 00:00:00 2001 From: qydysky Date: Sat, 26 Sep 2020 11:46:26 +0800 Subject: [PATCH] 82 --- Signal.go | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Signal.go b/Signal.go index 0dd25b3..24c1885 100644 --- a/Signal.go +++ b/Signal.go @@ -1,22 +1,24 @@ package part -type signal struct{ +type Signal struct{ v chan struct{} } -func Signal() (o *signal) { - return &signal{v:make(chan struct{})} +func (i Signal) Init() (o *Signal) { + o = &i + o.v = make(chan struct{}) + return } -func (i *signal) Wait() { +func (i *Signal) Wait() { <-i.v } -func (i *signal) Done() { +func (i *Signal) Done() { if i.Islive() {close(i.v)} } -func (i *signal) Islive() (islive bool) { +func (i *Signal) Islive() (islive bool) { select { case <-i.v:; default: -- 2.39.2