From: qydysky Date: Sat, 26 Sep 2020 03:46:26 +0000 (+0800) Subject: 82 X-Git-Tag: v0.0.2~3 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=d00657def022acdd98f16f0045f84fbc5e1d295f;p=part%2F.git 82 --- 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: