f5/task.go
aozhiwei 003e5247c7 1
2023-12-11 19:18:36 +08:00

37 lines
501 B
Go

package f5
type Task struct {
status int32
}
func (this *Task) IsRunning() bool {
return this.status == 0
}
func (this *Task) IsSucc() bool {
return this.status > 0
}
func (this *Task) IsFail() bool {
return this.status < 0
}
func (this *Task) SetSucc() {
this.status = 1
}
func (this *Task) SetFail() {
this.status = -1
}
func (this *Task) run(cb func(*Task)) *Task {
for this.IsRunning() {
cb(this)
}
return this
}
func NewTask(cb func(*Task)) *Task {
return new(Task).run(cb)
}